RxSwift:停止compactMap继续执行

时间:2019-12-03 16:26:05

标签: ios13 rx-swift xcode11.2 swift5.2 behaviorrelay

我已经在BehaviorRelay上实现了class MyClass{ let subject = BehaviorRelay(value: 1) func doSomething() { subject.compactMap{ $0 }.subscribe(onNext:{ print($0) }).disposed(by: disposeBag) } ,并且效果很好:

BehaviorRelay

我的问题是,是否由于某种原因想要取消/停止compactMap。有一种取消/停止def fun_Wprowadz(): okno.iconify() global Wprowadz Wprowadz=Toplevel() PrzyciskWprowadz=Button(Wprowadz, text="Wprowadź", width=30, height=2, command=lambda x="tekst": fun_sprowadzdosql(x)) PrzyciskWprowadz.grid(row=0, column=0) testowy=str def fun_sprowadzdosql(str: testowy): print(testowy) 的方法吗?

1 个答案:

答案 0 :(得分:0)

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

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

相关问题