Rxjs 可观察:完成vs最终vs完成
当谈到可观测序列(尤其是rxjs)时,“最终”和“完成”或“完成”之间有什么区别?每当可观测序列终止时(包括错误),总是会出现“最终”;只有在终止时没有错误,才会发生“完成” 最后: 在源可观察序列之后调用指定的操作 优雅地或例外地终止 未完成: 可观察对象在为对象调用Rxjs 可观察:完成vs最终vs完成,rxjs,Rxjs,当谈到可观测序列(尤其是rxjs)时,“最终”和“完成”或“完成”之间有什么区别?每当可观测序列终止时(包括错误),总是会出现“最终”;只有在终止时没有错误,才会发生“完成” 最后: 在源可观察序列之后调用指定的操作 优雅地或例外地终止 未完成: 可观察对象在为对象调用onNext后调用此方法 最后一次,如果没有遇到任何错误 “完成”不是一个接收/可观察的概念。我刚刚看到它打印在“Complete”/“OnComplete”的示例中 注意:调用subscribe时,语法通常为: observ
onNext
后调用此方法
最后一次,如果没有遇到任何错误
“完成”不是一个接收/可观察的概念。我刚刚看到它打印在“Complete”/“OnComplete”的示例中
注意:调用subscribe
时,语法通常为:
observable.subscribe([observer] | [onNext], [onError], [onCompleted]);
// Like this:
observable.subscribe(
(value) => { ... },
(error) => { ... },
() => { console.log('complete!'); }
);
或
然而,最后
是这样处理的:
observable.finally(() => { console.log('finally!'); })
.subscribe(...) // you can still call subscribe
更准确地说,
finally()
操作符添加了一个dispose hander。complete
通知只调用观察者中的complete处理程序
这在实践中意味着什么:
- 当使用
时,在任何导致取消订阅的情况下都将调用回调。此时,观察员会收到finally()
和完成
通知,但您也会手动取消订阅 请参见演示:错误
或complete
处理程序仅在收到相应通知时调用。只能调用error
处理程序,但不能同时调用它们0-1
observable.finally(() => { console.log('finally!'); })
.subscribe(...) // you can still call subscribe