我有这段代码:
myModel.tags
.filter(...)
.map(...)
.forEach(t => context.dispatch(new MyAction(t)))
dispatch
返回一个Observable
。
我只想在所有Observable
完成后再执行其他RxJs代码。
有可能吗?
答案 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(...);
可观察的创建方法将对所有响应的数组仅发出一次,然后完成。