gpt4 book ai didi

javascript - 自定义 HttpInterceptor - 如何返回无法解析的 Observable?

转载 作者:行者123 更新时间:2023-12-03 00:51:48 26 4
gpt4 key购买 nike

我正在关注this article关于如何通过自定义在我的 Angular 应用程序中实现全局错误处理 HttpInterceptor类。

重要的部分是 intercept() 的实现:

intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {

return next.handle(request).do((event: HttpEvent<any>) => {}, (err: any) => {
if (err instanceof HttpErrorResponse) {
// do error handling here
}
});
}

我不知道该怎么做,如果我在这里发现错误,我怎样才能得到 intercept()函数返回一个永远不会解析的 Observable?

我尝试更改 next.handle.do()next.handle.catch()这让我返回一个 Observable,但我想使用 Observable.never返回一个永远不会解析的可观察值,但它期望我返回 Observable<HttpEvent<any>> 类型它不会让我转换 NeverObservable到那种类型。

有办法获得我想要的功能吗?

最佳答案

不要返回“never”。返回一个空的。它们会自动完成您想要的内容,因为永远不会在内存中停留,直到页面发生 ondestory 事件。循环中任何返回 500/503 的内容都会堆积起来。

if (err instanceof HttpErrorResponse) {
if (err.status === 503 || err.status ===500) {
// do handling. message or whatever
return Observable.empty();
}
}

关于javascript - 自定义 HttpInterceptor - 如何返回无法解析的 Observable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53013598/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com