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

标签 javascript angular rxjs

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

我目前坚持的一个部分是超时错误的正确可视化(错误消息),因为它们似乎根本不包含任何有值(value)的内容。当错误发生并且用户看到时,我想向用户显示哪个请求是超时错误的根源。在测试环境的情况下,还应该显示其他想法,例如 url、设备版本等。

但是所有超时错误包含的似乎都是处理 post 请求的 javascript 库的堆栈跟踪。

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

下面你可以看到 rxjs 的 TimeoutError 对我来说是怎样的。 screenshot of the error in console

谢谢!

最佳答案

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

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

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

例如,您可以检查错误是否是 TimeoutError 的实例,如果是,则对其执行某些操作。

关于javascript - 是否可以从 rxjs-timeout-error 中获取请求信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54131470/

相关文章:

javascript - 展平深度嵌套的对象数组

javascript - Vue.js:在 vue.router 路由中使用 mixin 函数

angular - 如何在 Angular2 中将 ngModule 路由添加为另一个 ngModule 的子路由?

angular - 过滤 Observable<T[]> 以获取 RxJS 中特定的 Observable<T>

javascript - 使用 Observables 传播 Angular 2 中的变化

javascript - ExtJS-3、Ext.grid.GridPanel、多行复选框 : how do I submit all checked items at once?

javascript - 如何检查所有文本框(包括动态添加的)是否为空?

css - 如何在 Angular 7 中同时使用 css 和 sass 文件?

javascript - [ng-bootstrap] : Passing function to a modal threw a service

rxjs - 如何组合多个 rxjs BehaviourSubjects