繁体   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