[英]Angular 4. Error in XHR request stops a chained observable
我在Angular 4中有一個可觀察到的輸入,當檢測到URL調用時,服務會啟動xhr請求。
Observable.fromEvent(this._elementRef.nativeElement, 'input')
.debounceTime(500)
.map((res: any) => { return res.target.value })
.distinctUntilChanged()
.map((res: string) => String(res.match(this.regExpUrl)))
.distinctUntilChanged()
.filter(res => res ? true : false)
.switchMap(this.serviceThatReturnAObservableOfAXHRRequest))
.subscribe(response => console.log(response),
err => console.log(err));
當xhr返回200時,可觀察到的輸入保持工作,我可以在輸入中寫入其他url,但是當返回錯誤時,可觀察到的輸入停止工作,並且如果我在輸入中寫了一些,則永遠不會通過再次觀察到。
知道為什么請求引發的錯誤和訂閱中捕獲的錯誤會破壞輸入的可觀察性,何時成功則否?
這是正確的行為。 例如,您可以使用catch(() => Observable.of())
來忽略錯誤,或者使用catch(err => Observable.of(err))
將其轉換為next
項目,或者使用retry()
自動重新訂閱源Observable。
由於您使用的是Angular,因此http
服務會自動將所有非2XX
變成錯誤。
類似的問題:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.