我很努力地以我期望的方式處理Rx錯誤。RxJS - 抓住並進行
當我有一個Observable(例如,從一個點擊流),併發生異常我想趕上它,但繼續。我試過的所有解決方案都會發現錯誤,然後結束Observable。有沒有辦法抓住並繼續下去?作爲一個例子,下面的Observable將會發出「1」,然後是「Error」,但不會是「3」。
var range = Rx.Observable.range(1,3)
.map(function(i){
if(i === 2){
throw "Error";
} else {
return i;
}
})
.catch(function(e){
return Rx.Observable.return(e)
});
range.subscribe(function(i){
console.log(i)
});
進行源序列的唯一方法是不要拋出。你能告訴我們你真正的用例是什麼嗎? –
可觀察的契約是它必須向觀察者發出模式:(OnNext)*(OnCompleted | OnError)。所以一個序列發出OnError的那一刻就結束了。 –
@OliverWeichhold真正的案例是一個Click事件observable,其中'flatMap()'指向一個http請求observable。如果/當http請求失敗時,click click不再發光。 – MaxWillmo