[英]In RxSwift how can I set up a Subject to observe another Observable?
假設我有以下內容:
let theSubject = PublishSubject<String>()
let theObservable = Observable.just("Hello?")
我如何設置theSubject
觀察員theObservable
?
在RxSwift中,我們說主題是一個觀察者,可以訂閱一個或多個Observables ......
您能否展示一個簡單的代碼示例,說明如何將theSubject
作為theSubject
的觀察者進行theObservable
?
代碼是:
theObservable
.bind(to: theSubject)
.disposed(by: bag)
要么:
theObservable
.subscribe(theSubject)
.disposed(by: bag)
如果您只按其他人的建議進行subscribe(onNext:)
,則只傳遞onNext事件。 您應該使用bind來傳遞所有內容。
(但實際上你可能不應該使用一個主題。而是直接將正在聽主題的東西綁定到Observable。
theObservable
.subscribe(onNext: { theSubject.onNext($0) })
.disposed(by: disposeBag)
這將確保每次theObservable
發出時,該值也將傳遞給theSubject
。
注意這只傳遞值onNext
,如果你想處理所有情況,那么使用bind(to:)
作為Daniel T.的答案 (或drive
Driver
的drive
Driver
)
在以下示例中,來自不同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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.