是否有可能从rxjs-timeout-error中获取请求信息?

时间:2019-01-10 15:03:25

标签: javascript angular rxjs

我正在尝试改进当前的错误处理实现,其中一部分是在一般情况下以及在测试环境中对错误的更好描述。我为Ionic应用程序执行此操作,但是由于我的问题出在rxjs超时方法之内,所以我认为这可以忽略不计。

我当前停留的一部分是超时错误的正确可视化(错误消息),因为它们似乎根本不包含任何有价值的东西。我想向用户显示哪个请求是发生错误并由用户看到时超时错误的来源。在测试环境中,还应显示url,设备版本等其他提示。

但是所有Timeout-Error似乎都是处理发布请求的javascript库的堆栈跟踪。

所以,我的问题是是否有办法从rxjs超时错误中添加或检索其他信息?

在下面,您可以看到rxjs的TimeoutError如何寻找我。 screenshot of the error in console

谢谢!

1 个答案:

答案 0 :(得分:1)

TimeoutError与源Observable发出的值无关。尽管如此,当源头没有任何排放物时,它会被抛出,那么它怎么会包含任何信息。

但是,您可以使用catchError来获取所产生的错误,将其转换为另一个错误,然后使用throwError将其进一步发送:

...
catchError(e => throwError({...e, ...whatever}))

例如,您可以检查错误是否为TimeoutError的实例,以及是否为该错误的解决方案。