嗨,我对Angular很新.我有大约4个数据库查询,每个都是Subscriptions(rxjs/Rx).所以我知道我需要取消订阅每个订阅以节省内存泄漏.我该如何优化通话?我的意思是,我不想打电话给每个订阅并逐个取消订阅.我想在一次通话中取消订阅.对不起,如果这是一个愚蠢的问题.伙计们好吗?提前致谢
subscriptions = Subscription[];
someMethod() {
this.subscriptions.push(http.get(...).map(...).subscribe(...));
}
ngOnDestroy() {
this.subscriptions.forEach(s => s.unsubscribe());
}
Run Code Online (Sandbox Code Playgroud)
当一个observable完成时,取消订阅是多余的.取消订阅仅对于在没有完成的情况下继续发出事件的可观察量是必要的.
如果您只想接收单个(或其他有限数量的事件),您可以通过使用类似的运算符来控制您订阅的可观察量何时完成take(x),然后在x事件之后,observable将完成.
| 归档时间: |
|
| 查看次数: |
945 次 |
| 最近记录: |