在RxSwift中放置绑定时,如何不使观察者无效?

时间:2019-05-21 10:26:33

标签: ios swift binding dispose rx-swift

我在RxSwift世界中是一个新手,显然我没有正确使用它...我有一个按钮想要连接到这样的观察器

button.rx.tap.bind(to: viewModel.someObserver).disposed(by: disposeBag)

其中viewModel中的someObserver初始化如下:

let publishSubject = PublishSubject<Void>()
someObserver = publishSubject.asObserver()
someObservable = publishSubject.asObservable() 

但是,当处置通过绑定创建的Disposable时,同时用作PublishSubjectObserver的{​​{1}}无效,所有新的订阅都将立即处置。

我想使用我的Observable更长的时间,并且能够在绑定解除后订阅它。如何实现?

1 个答案:

答案 0 :(得分:1)

看看PublishRelay,它不会因错误或完成的事件而终止。

将抽签绑定到PublishRelay只会在处理完订阅后(例如,当按钮被释放时。这样一来,您以后就可以订阅PublishRelay