簡體   English   中英

在 Observable 的 pipe() 方法中捕獲錯誤 - rxjs/Axios

[英]Catching Error in pipe() method of an Observable - rxjs/Axios

我使用rxjs將我的 http 層重構為 go,從基於承諾的實現到可觀察對象。 我面臨的問題是,每當服務器響應為400500時,代碼就會崩潰,

Axios.request(config).pipe(map(((response: AxiosResponse) => response), catchError(e => {
    return new Observable(e);
})));

我面臨的問題是錯誤沒有被catchError回調處理。 我正在尋找一種由catchError回調處理錯誤的方法,以便可以優雅地處理響應。

我不知道你的問題是這個,但你可以這樣做:

import { EMPTY } from 'rxjs';

Axios.request(config).pipe(map(((response: AxiosResponse) => response), 
catchError(() => EMPTY)));

EMPTY是從 rxjs libaray 導入的 object。

看起來您想將error通知轉為next通知,因此如果您想抑制錯誤,則需要使用return of(e) eventually EMPTY

new Observable(e)可能是在您的情況下引發錯誤的原因,因為傳遞給Observable的參數需要是 function 而e在這種情況下不是。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM