我想合併/合併多個觀察對象當他們每個完成時執行一個最後函數。 merge
運營商似乎並行執行每個訂閱,這是我需要的,但如果他們中的任何一個拋出一個錯誤執行被暫停。rxjs5合併和錯誤處理
RxJS 4版有一個運營商mergeDelayError應該繼續執行,直到所有的人都完成了所有訂閱,但該運營商不版本5實現。
我應該回到不同的操作員嗎?
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);
// Combine the 3 sources into 1
var source = Rx.Observable
.merge(source1, source2, source3)
.finally(() => {
// finally is executed before all
// subscriptions are completed.
console.log('finally');
});
var subscription = source.subscribe(
x => console.log('next:', x),
e => console.log('error:', e),
() => console.log('completed'));
JSBin
謝謝 - 'catch'似乎不起作用。相反,我只是用'onErrorResumeNext'映射了所有東西,這在我的情況下是可以的。 – null
@null catch()運算符不起作用如何?我認爲它應該工作... – martin
我不知道爲什麼。看到這個JSBin:[http://jsbin.com/qaluyaq/edit?js,console](http://jsbin.com/qaluyaq/edit?js,console) – null