我推到可观察像这样的一个数组...RXJS等待所有观测阵列中的完成(或错误)
var tasks$ = [];
tasks$.push(Observable.timer(1000));
tasks$.push(Observable.timer(3000));
tasks$.push(Observable.timer(10000));
我想可观察到的,当所有任务$完成发射。请记住,实际上,任务$没有已知数量的可观察值。
我试过Observable.zip(tasks$).subscribe()
,但是如果只有一项任务,这似乎失败了,并且正在让我相信ZIP需要偶数个元素才能按我期望的方式工作。
我试过Observable.concat(tasks$).subscribe()
但是concat操作符的结果似乎只是一个观察值的数组......基本上与输入相同。你甚至不能在它上面调用订阅。
在C#中,这将类似于Task.WhenAll()。在ES6中的 保证它与Promise.all()类似。
我遇到过许多SO问题,但它们似乎都处理等待已知数量的流(例如将它们映射到一起)。
这取决于您在任何Observables发送错误通知时要执行的操作。你想忽略错误还是意味着整个结果将被丢弃,你会收到错误。 – martin