I would like to merge / merge several Observables, and when each of them is done, execute the finally function. It seems that the operator mergeexecutes each subscription in parallel, and this is what I need, but if any of them causes an error, execution stops.
RxJS version 4 has a mergeDelayError operator , which should support the execution of all signatures until all of them are completed, but this operator is not implemented in version 5.
Should I return to another operator?
var source1 = Rx.Observable.of(1,2,3).delay(3000);
var source2 = Rx.Observable.throw(new Error('woops'));
var source3 = Rx.Observable.of(4,5,6).delay(1000);
var source = Rx.Observable
.merge(source1, source2, source3)
.finally(() => {
console.log('finally');
});
var subscription = source.subscribe(
x => console.log('next:', x),
e => console.log('error:', e),
() => console.log('completed'));
Jsbin
source
share