[英]How to manually send next signal to a observable in RxSwift?
I create an observable using the following code: 我使用以下代码创建一个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()
}
}
That code comes from RxSwift's sample code. 该代码来自RxSwift的示例代码。
If I create an empty Observable myJust
, and later I try to send it a value: 如果我创建一个空的Observable
myJust
,稍后我会尝试发送一个值:
myJust("🔴").on(.completed)
I get the following error: 我收到以下错误:
error: value of type 'Observable<String>' has no member 'on'
You can't. 你不能。
Observable
s can only be observed. 只能观察到
Observable
s。 If you want to push values, you'll need a Subject
. 如果你想推送价值,你需要一个
Subject
。 A Subject
is both an Observable
and an Observer
so it can emit and listen to Events. Subject
既是Observable
又是Observer
因此它可以发出和监听事件。 In RxSwift you can also create a Variable
which you can bind an Observable
to. 在RxSwift中,您还可以创建一个可以将
Observable
绑定到的Variable
。
Quick example for BehaviorSubject
: BehaviorSubject
快速示例:
let subject = BehaviorSubject(value: 1)
subject.on(.Next(2))
subject.on(.Next(3))
subject.on(.Completed)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.