我需要能够使用BehaviorSubject(最好)向订阅者发出新值(next | error)。
基本上我想使用BehaviorSubject作为下一个和错误值的2个独立流,因为从这些错误中它可以恢复,例如。从服务器提交和拒绝的表单输入,服务器可以接受来自输入的新提交值,因此订户应该接收下一个val。例如。好消息。
现在我为每个组件提供了一个中间数据服务(基于this),使用BehaviorSubject扩展一些基本服务以获取ok值,并使用Subject获取错误值。它似乎有效,但我不确定当我将提供数十种这样的服务时它会如何表现。
有没有办法通过BehaviorSubject或任何符合建议行为的方法从错误中恢复?
答案 0 :(得分:0)
如果您在Subject
(或在您的情况BehaviorSubject
,ReplaySubject
)上发送错误,Subject
基本上已死。在某些情况下,添加.catch
可能是有意义的。但即便如此:Subject
不能再用于发射其他数据了。因此,如果您想要坚持使用两个Subjects
,请在两者上使用.next(...)
,从不手动使用.error(...)
。也许您希望得到这个答案,它可能与您的问题类似:https://stackoverflow.com/a/40823122/1518765