我已经在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)
的方法吗?
答案 0 :(得分:0)
compactMap
运算符在此代码中不执行任何操作。只需将其删除。
直接回答您的问题。可观察的链(从源到订阅的整个代码)将一直持续到源发出完成/错误事件或接收器调用置于一次性对象上为止。在这种情况下,BehaviorRelay无法完成或出错,因此关闭链的唯一方法是调用dispose(),它将关闭 entire 链。