进一步点击会发生什么

时间:2017-02-16 12:22:36

标签: javascript rxjs rxjs5

当计数器达到5时,我有一个会发出错误的observable:

source2

当错误被抛出时,它会切换到{{1}},如上面的代码所示。

当我进一步点击文档时,什么都不会发生?进一步点击会发生什么?

1 个答案:

答案 0 :(得分:1)

这是基本的rxjs-paradigms之一:每当流中出现错误(无论是直接throw new Error(..)还是Observable.throw(...))时,订阅的流都会自动最终化和订阅者已取消订阅。

所以行为是预期的。

在个人情况下修复:如果您不希望您的信息流停止,除非您想手动重新订阅,否则不要抛出错误。

添加:catch-operator只允许对流中的错误作出反应,独立于任何订阅者 - 流本身仍将最终确定 - 名称catch在此给出了错误的印象。 - 您可以通过返回catch - 运算符中的原始来源“重试” observable,这将有效地创建基于该源的新流,但旧流仍然会最终确定。