And*_*ons 5 ios swift rx-swift
假设我有以下几点:
let theSubject = PublishSubject<String>()
let theObservable = Observable.just("Hello?")
Run Code Online (Sandbox Code Playgroud)
如何设置theSubject观察者theObservable?
在RxSwift中,我们说主题是观察者,可以订阅一个或多个Observables ...
您能否显示一个简单的代码示例来说明如何theSubject以观察者身份进行连接theObservable?
Dan*_* T. 12
代码是:
theObservable
.bind(to: theSubject)
.disposed(by: bag)
Run Code Online (Sandbox Code Playgroud)
或者:
theObservable
.subscribe(theSubject)
.disposed(by: bag)
Run Code Online (Sandbox Code Playgroud)
如果您只subscribe(onNext:)按照其他人的建议进行操作,则只会传递 onNext 事件。您应该使用 bind 来传递所有内容。
(但实际上您可能不应该使用主题。而是将正在侦听主题的事物直接绑定到 Observable。
theObservable
.subscribe(onNext: { theSubject.onNext($0) })
.disposed(by: disposeBag)
Run Code Online (Sandbox Code Playgroud)
这将确保每次theObservable发出时,该值也将被传递给theSubject。
注意
这仅传递 value onNext,如果您想处理所有情况,请bind(to:)用作Daniel T. (or for s)的答案driveDriver
在下面的示例中,不同的值Observables将被传递给theSubject
let theSubject = PublishSubject<String>()
let theObservable = Observable.just("Hello?")
let anotherObservable = Observable.just("Hey there")
theSubject.asObservable()
.subscribe(onNext: { print($0) })
.disposed(by: disposeBag)
theObservable
.subscribe(onNext: { theSubject.onNext($0) })
.disposed(by: disposeBag)
anotherObservable
.subscribe(onNext: { theSubject.onNext($0) })
.disposed(by: disposeBag)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1533 次 |
| 最近记录: |