如何手动将下一个信号发送到 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'
你不能。 Observable
s只能观察。如果你想推动价值,你需要一个 Subject
。
Subject
既是 Observable
又是 Observer
,因此它可以发出和监听事件。
在 RxSwift 中,您还可以创建一个 Variable
,您可以将 Observable
绑定到它。
BehaviorSubject
的快速示例:
let subject = BehaviorSubject(value: 1)
subject.on(.Next(2))
subject.on(.Next(3))
subject.on(.Completed)
我使用以下代码创建一个可观察对象:
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'
你不能。 Observable
s只能观察。如果你想推动价值,你需要一个 Subject
。
Subject
既是 Observable
又是 Observer
,因此它可以发出和监听事件。
在 RxSwift 中,您还可以创建一个 Variable
,您可以将 Observable
绑定到它。
BehaviorSubject
的快速示例:
let subject = BehaviorSubject(value: 1)
subject.on(.Next(2))
subject.on(.Next(3))
subject.on(.Completed)