gpt4 book ai didi

javascript - Angular 2+ http 错误处理

转载 作者:太空宇宙 更新时间:2023-11-04 15:28:13 27 4
gpt4 key购买 nike

我在这里有一个关于 Angular2+ Observable 如何处理 Http 错误的问题。当我们使用Angular2+ Http API发出请求时,如果返回的响应有错误状态码,则会抛出错误。

在Angular2官方Starter项目中,要调用的错误处理函数是:

someObs.catch(handler)

在处理程序中,它实际上返回:

Observable.throw(...)

我的问题是,这不会引发可能导致网络应用程序崩溃的新错误吗?因为在 Javascript 中,如果抛出一些错误,网络应用程序可能会出现意外的行为。

我对 Observable.catch 的理解是,当发生某些错误时,我们捕获它并做其他事情(而不是抛出新错误)。自从

Observable.catch

仍然需要我们返回一个Observable,返回是否是最好的解决方案:

Observable.empty()

因为它不会发出任何新值,因此订阅者不会使用react

最佳答案

如果您能够在catch中处理特定错误,则可以返回一个用于继续可观察链的可观察量。返回 Observable.empty() 可能有意义 - 取决于具体情况。

如果您无法处理捕获的错误并返回 Observable.empty,那么您就已经吞掉了该错误 - 一般来说,这不是一个好主意(特别是如果 catch 处理程序不包括某种报告机制)。相反,重新抛出错误 - 或返回 Observable.throw - 为订阅者提供了处理或报告错误的机会。

如果订阅者不处理错误,则发生的情况取决于运行时。在浏览器中,应用程序不会因为错误未被处理而崩溃;它只会被报告为未处理的错误 - 与未处理的 promise 拒绝或未捕获的抛出错误非常相似。在 Node 中,默认情况下它会快速失败/崩溃。

关于javascript - Angular 2+ http 错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45047223/

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