RxJs-等待所有可观察对象完成

时间:2018-11-23 14:08:31

标签: typescript rxjs

我有这段代码:

myModel.tags
       .filter(...)
       .map(...)
       .forEach(t => context.dispatch(new MyAction(t)))

dispatch返回一个Observable
我只想在所有Observable完成后再执行其他RxJs代码。
有可能吗?

1 个答案:

答案 0 :(得分:2)

如果您想知道所有可观察对象何时完成,则必须将它们全部收集到一个数组中,然后理想地使用>>> result [['0', '0', '0', '0', '0', '0'], ['0', '0', '0', '0', '1', '0'], ['0', '0', '0', '1', '0', '0']]

forkJoin

const obs = myModel.tags .filter(...) .map(...) .map(t => context.dispatch(new MyAction(t))) const done$ = forkJoin(...obs).subscribe(...); 可观察的创建方法将对所有响应的数组仅发出一次,然后完成。