如何手动将下一个信号发送到RxSwift中的observable?

lei*_*701 12 reactive-programming ios swift rx-swift

我使用以下代码创建一个observable:

let disposeBag = DisposeBag()

let myJust = { (element: String) -> Observable<String> in
    return Observable.create { observer in
        observer.on(.next(element))
        //observer.on(.completed)
        return Disposables.create()
    }
}
Run Code Online (Sandbox Code Playgroud)

该代码来自RxSwift的示例代码.

如果我创建一个空的Observable myJust,稍后我会尝试发送一个值:

myJust("").on(.completed)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

error: value of type 'Observable<String>' has no member 'on'
Run Code Online (Sandbox Code Playgroud)

Luk*_*itz 17

你不能.Observables只能被观察到.如果你想推动价值,你需要一个Subject.A Subject既是一个Observable也是一个Observer它可以发出和听取事件.在RxSwift中,您还可以创建一个 Variable可以绑定Observable到的域.

快速示例BehaviorSubject:

let subject = BehaviorSubject(value: 1)
subject.on(.Next(2))
subject.on(.Next(3))
subject.on(.Completed)
Run Code Online (Sandbox Code Playgroud)