0

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

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

其中someObserverviewModel 的初始化如下:

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

但是,当Disposable使用绑定创建时,PublishSubject它被用作Observer并被Observable无效,并且所有新订阅都会立即被释放。

我想使用 myPublishSubject更长的时间,并且能够在绑定处理后订阅它。如何做到这一点?

4

1 回答 1

3

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

一旦订阅被释放,例如当按钮被释放时,将点击绑定到 aPublishRelay将简单地忽略完成的事件(source )。PublishRelay这将允许您稍后订阅

于 2019-05-21T21:50:32.717 回答