gpt4 book ai didi

error-handling - RxJS HTTP请求错误处理

转载 作者:行者123 更新时间:2023-12-03 08:23:44 24 4
gpt4 key购买 nike

在我的项目中,我使用RxJS处理HTTP请求。我对错误处理部分感到困惑,如下所示:

    .switchMap((evt: any) => {
return http.getComments(evt.params)
.map(data => ({ loading: false, data }))
.catch(() => {
console.log('debugging here');
return Observable.empty();
});
})

在上面的代码中,在 switchMap运算符内部,我使用 http.getComments函数发送请求,该函数由我自己定义如下:
  getComments(params) {
return Observable.fromPromise(
this.io.get(path, { params })
);
}

在此函数中,我使用 fromPromise运算符将返回的Promise转换为可观察的。

问题是当HTTP请求失败时, catch中的 switchMap运算符无法工作,调试控制台无法输出。所以我的代码出了什么问题。

最佳答案

您是否真的需要在switchMap中捕获错误?您可以根据需要在源中处理错误。

.switchMap((evt: any) => 
http.getComments(evt.params).map(data => ({ loading: false, data }))
})
.subscribe(console.log, console.error);

无论如何,您的源代码看起来没有任何错误,也许您的 promise 不会在http失败时被拒绝,而只是通过错误作为响应来解决(这是猜测,因为我之前已经看到过)

关于error-handling - RxJS HTTP请求错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49428191/

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