为了账号安全,请及时绑定邮箱和手机立即绑定

哪些 RxJS 运算符需要退订?

哪些 RxJS 运算符需要退订?

蝴蝶不菲 2023-02-24 16:43:48
我知道有些运算符会自动完成,例如 forkJoin,但据我所知,还有其他运算符永远不会完成,必须取消订阅以防止任何订阅泄漏,例如 combineLatest。有什么好的方法可以判断哪些必须取消订阅,哪些是安全的?或者至少是他们的完整列表?我正在努力从文档中获取此信息。我对 RxJS 还是很陌生,所以如果我似乎误解了什么,请告诉我。请注意:我知道如何使用,| async但我正在处理一个现有项目,目前无法使用它。我也知道并正在使用takeUntil该方法来代替该unsubscribe方法,因此这与该方法无关。我只想知道在使用其中一个 RxJS 运算符之后何时需要使用takeUntil/ 。unsubscribe
查看完整描述

1 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

forkJoin实际上不会自动完成。这取决于它正在修改以完成的可观察对象。如果这些 observables 没有完成,则forkJoin(). 实际上,combineLatest具有相似的品质。

通常,所有 RxJS 提供的运算符都会创建在原始可观察对象关闭时关闭的可观察对象 - 或者至少其中之一。

实际上,这意味着开发人员使用 RxJS 来理解他们传递给操作员的可观察对象的行为。流有可能永远被卡住吗?在那种情况下,我们将要修改它来处理这个问题——也许它会在 5 秒无活动后关闭。

重点是操作员要么尊重输入可观察对象的完成,要么修改它(可能通过提前完成),因为这是他们设计的目的。后一类最常见的例子包括“takes”:taketakeWhiletakeUntil

花足够的时间在图书馆 - 阅读每个操作员的文档,在代码中玩弄它们,或者在这里询问是否有特定的东西没有意义,你会变得非常熟悉哪些是哪些。


查看完整回答
反对 回复 2023-02-24
  • 1 回答
  • 0 关注
  • 79 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信