如何手动将下一个信号发送到 RxSwift 中的可观察对象?

How to manually send next signal to a observable in RxSwift?

我使用以下代码创建一个可观察对象:

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()
    }
}

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

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

myJust("").on(.completed)

我收到以下错误:

error: value of type 'Observable<String>' has no member 'on'

你不能。 Observables只能观察。如果你想推动价值,你需要一个 SubjectSubject 既是 Observable 又是 Observer,因此它可以发出和监听事件。 在 RxSwift 中,您还可以创建一个 Variable,您可以将 Observable 绑定到它。

BehaviorSubject 的快速示例:

let subject = BehaviorSubject(value: 1)
subject.on(.Next(2))
subject.on(.Next(3))
subject.on(.Completed)