总之: 如何在流错误后继续收听,而不是在每.subscribe
之前加上.catch
?为什么Rxjs错误地取消订阅?
如果您需要更多的细节他们在这里:
让我们假设我有当前用户或空的主题。我有时从API获取数据并发送给主题。它相应地更新视图。 但是,在某些时候,我的服务器上发生错误,我希望我的应用程序继续像以前一样工作,但通知某些地方有关该错误并保持聆听我的主题。
最初我以为如果我只是做userSubject.error(...)
它只会触发.catch
回调和error
处理器上的订阅,并跳过所有成功的处理程序和链。 如果我打电话userSubject.next(...)
后我所有的连锁店和订户将像以前一样工作
但是不幸的是情况并非如此。在第一个未被捕获的.error
之后,它将订阅者从流中取消订阅,并且它们不再运行。
所以我的问题:为什么? 如果我想正常处理null
值,但是也只能在某些地方处理错误,我该怎么办?
这里是链接到RxJs源代码中的错误认购退订 https://github.com/ReactiveX/rxjs/blob/master/src/Subscriber.ts#L140
明白谢谢! – mgrinko