我想知道在下面编写的代码中没有编写完整语句的缺点。在这种情况下会发生什么?
Observable.create(function(observer) {
observer.next('Hello');
observer.next('World');
// observer.complete();
});
Run Code Online (Sandbox Code Playgroud)
如果您不调用.complete(),订阅者将永远不会知道您Observable将不再发出事件。通过调用.complete(),所有订阅者将取消订阅并释放分配的内存,从而防止内存泄漏。您可以假设订阅者将自己取消订阅(基于事件内容、事件计数或其他任何内容),但强烈建议发出“已完成”事件,因为它可以防止您Observable被滥用。
同样如评论中所写,如果Observable未完成,某些运算符将无法工作(例如concatMap,在切换到下一个之前将等待 Observables 完成)
| 归档时间: |
|
| 查看次数: |
152 次 |
| 最近记录: |