Javascript 哪些RxJS运营商需要取消订阅?
我知道有些运营商会自动完成,比如forkJoin,但就我所知,还有一些运营商永远不会完成,必须取消订阅以防止任何订阅泄漏,比如CombineRelatest 有没有一个好方法来区分哪些必须取消订阅,哪些是安全的?或者至少是一份完整的名单?我正在努力从文档中获取这些信息 我对RxJS还是相当陌生的,所以如果我似乎误解了什么,请告诉我Javascript 哪些RxJS运营商需要取消订阅?,javascript,typescript,rxjs,Javascript,Typescript,Rxjs,我知道有些运营商会自动完成,比如forkJoin,但就我所知,还有一些运营商永远不会完成,必须取消订阅以防止任何订阅泄漏,比如CombineRelatest 有没有一个好方法来区分哪些必须取消订阅,哪些是安全的?或者至少是一份完整的名单?我正在努力从文档中获取这些信息 我对RxJS还是相当陌生的,所以如果我似乎误解了什么,请告诉我 请注意:我知道如何使用| async,但我正在处理一个现有的项目,目前还不能使用它。我也知道并正在使用takeUntil代替unsubscribe方法,因此这不是指
请注意:我知道如何使用
| async
,但我正在处理一个现有的项目,目前还不能使用它。我也知道并正在使用takeUntil
代替unsubscribe
方法,因此这不是指该方法。我只想知道在使用了一个RxJS操作符之后,何时需要使用takeUntil
/取消订阅。forkJoin
实际上不会自动完成。这取决于要修改以完成的可观测值。如果这些观察不完整,则forkJoin()
返回的观察也不完整。实际上,combinelateest
具有类似的特性
通常,所有RXJ提供的操作符都会创建当原始可观察对象关闭时关闭的可观察对象,或者至少其中一个
实际上,这意味着使用RxJS的开发人员需要了解传递给操作员的可观察对象的行为。这条河可能永远被堵住吗?在这种情况下,我们需要修改它以处理此问题-可能在5秒无活动后关闭
关键是,操作员要么尊重可观察输入的完成,要么修改它(可能通过提前完成),因为这是他们设计的目的。后一种排序的最常见示例包括“take”:take
,takeWhile
,takeUntil
花足够的时间在这个库上——阅读每个操作员的文档,在代码中使用它们,或者在这里询问一些特定的东西是否有意义,这样你就会非常熟悉哪些是哪些