RxSwift:停止 compactMap 以继续执行



我已经实现了compactMapBehaviorRelay,它工作得很好:

class MyClass{
let subject = BehaviorRelay(value: 1)
func doSomething() {
subject.compactMap{ $0 }.subscribe(onNext:{
print($0)
}).disposed(by: disposeBag)
}

我的问题是,如果出于某种原因我想取消/停止BehaviorRelay。有一种方法可以取消/停止compactMap

compactMap运算符在此代码中不执行任何操作。只需将其删除即可。

直接回答您的问题。可观察链(从源到订阅的整个代码(将继续存在,直到源发出已完成/错误事件或接收器调用在一次性对象上释放。在这种情况下,BehaviorRelay无法完成或出错,因此关闭链的唯一方法是调用dispose((,它将关闭整个链。

相关内容

  • 没有找到相关文章

最新更新