我正在构建一个Angular应用。在我的组件的构造函数中,我正在从服务器发起一个请求,这些元素自然是异步发生的。这些请求以rxjs/Behavior
个对象的形式返回给我,我订阅了这些对象。
我需要做的是在最后一个回来后立即继续处理。但我需要以确保按照提交顺序处理它们,而不一定按照它们返回的顺序进行处理。
我可以创建一个janky hack来检测最后一个返回的时间:
let counter = 0;
let output = new Array( input.length );
for ( let i = 0 ; i < input.length ; i++ ) {
counter++;
fetch( input[i] ).subscribe(
result => {
output[i] = result;
counter--;
if ( counter === 0 ) {
// what to do at the end
}
}
);
}
这很有效。但它很丑陋,不容易理解,而不是我称之为生产就绪代码。
一旦完成一系列主题后,做某事的角度方式是什么?
答案 0 :(得分:3)
您正在寻找const Component = () =>
<div onTransitionEnd={handleTransitionEnd} onClick={startStatusTransition} />
:
forkJoin
有关详细信息和需要注意的一些事项,请参阅the docs。
作为未来的扩展提示,rxjs网站有一个非常好的调查问卷,可帮助您找到您在各种情况下寻找的运营商。