3
我想在錯誤Observable
分成的Observable
兩股Rxjs處理錯誤在單獨的管道和合並
catch
運營商可以通過throw
ING返回一個觀察或傳播錯誤兩種或返回Observable.throw
partition
運營商只處理有效的值,沒有錯誤通過這個
我需要的是分裂Observable
成兩個Observable
秒的d過程則不同,它們合併如下圖所看到的
我想在錯誤Observable
分成的Observable
兩股Rxjs處理錯誤在單獨的管道和合並
catch
運營商可以通過throw
ING返回一個觀察或傳播錯誤兩種或返回Observable.throw
partition
運營商只處理有效的值,沒有錯誤通過這個
我需要的是分裂Observable
成兩個Observable
秒的d過程則不同,它們合併如下圖所看到的
模式這樣可能適合你的使用情況
step1
.map((data)=>{data:data})
.catch(()=>Observable.of({error:'error'})
.flatMap((res)=>{
//process A and B should return observable
if(res.data) return processA(res)
return processB(res)
})
.map(res=>{
//do your merged processing here
})
.subscribe()
它不會工作,因爲第一後錯誤''step1'流不會發出任何更多的值。另一個較小的事情是'如果(res.data)返回processA(res)' –
catch中的Observable.of應該將錯誤轉換爲正常的可觀察項目,所以它仍然會發射。請看這個例子 https://jsfiddle.net/c8hLezf4/ –
你在技術上做了**沒有**扔你的jsfiddle和捕捉沒有命中 - 看到這裏:https://jsfiddle.net/c8hLezf4/3/。如果你確實拋出了,那麼數組的其餘部分將不會被髮射,因爲它會違反可觀察的接口。 –