【问题标题】:Is there a way to recover from error with BehaviorSubject?有没有办法使用 BehaviorSubject 从错误中恢复?
【发布时间】:2016-12-06 19:11:23
【问题描述】:

我需要能够使用 BehaviorSubject(最好)向订阅者发出新值(下一个|错误)。

基本上,我想将 BehaviorSubject 作为 2 个单独的流用于下一个和错误值,因为可以从这些错误中恢复,例如。表单输入从服务器提交并被拒绝,来自输入的新提交值可以被服务器接受,因此订阅者应该收到下一个 val。例如。好的消息。

现在我为每个组件提供了一个中间数据服务(基于this),它扩展了一些基本服务,其中 BehaviorSubject 用于 ok 值,Subject 用于错误值。它似乎正在工作,但我不确定当我拥有数十个这样的服务时它会如何表现。

有没有办法从 BehaviorSubject 的错误中恢复,或者有任何方法来遵守建议的行为?

【问题讨论】:

    标签: javascript angular rxjs


    【解决方案1】:

    如果您在Subject(或者在您的情况下为BehaviorSubjectReplaySubject)发送错误,Subject 基本上已死。在某些情况下,添加.catch 可能是有意义的,例如但即便如此:Subject 不能再用于发出其他数据。因此,如果您想坚持使用两个Subjects,请同时使用.next(...),并且从不手动使用.error(...)。也许您还想知道这个答案,它可能与您的问题类似:https://stackoverflow.com/a/40823122/1518765

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-09
      • 1970-01-01
      • 1970-01-01
      • 2016-05-11
      • 2011-10-31
      • 1970-01-01
      相关资源
      最近更新 更多