【发布时间】:2023-03-04 16:17:01
【问题描述】:
简而言之:
如何在流中出现错误后继续收听而不在每个 .subscribe 之前放置 .catch?
如果您需要更多详细信息,请点击此处:
假设我有一个当前用户或 null 的主题。我有时会从 API 获取数据并发送给主题。它相应地更新视图。 但是在某些时候我的服务器上发生了错误,我希望我的应用程序像以前一样继续工作,但通知一些地方有关错误并继续监听我的主题。
最初我认为如果我只执行userSubject.error(...),它只会在订阅时触发.catch 回调和error 处理程序,并跳过所有成功处理程序和链。
如果在我拨打 userSubject.next(...) 之后,我所有的连锁店和订阅者都会像以前一样工作
但不幸的是,事实并非如此。在第一个未捕获的.error 之后,它会从流中取消订阅订阅者并且他们不再操作。
所以我的问题是:为什么???
如果我想正常处理null 值但也只在某些地方处理错误,该怎么办?
这里是 RxJs 源代码的链接,订阅者在出错时取消订阅 https://github.com/ReactiveX/rxjs/blob/master/src/Subscriber.ts#L140
【问题讨论】: