我是 rxSwift 的新手。我在创建 Observable 时发现了一些区别Observable.of
and Observable<String>.create
Observable<String>.create { observer in
observer.onNext("1")
observer.onNext("2")
return Disposables.create()
}.take(3).toArray().subscribe(onNext: { (item) in
print(item)
}).disposed(by: disposeBag)
未发出 util 收到至少 3 个事件。这样观察者就永远不会发射。
但与:
Observable.of("1", "2")
// 2
.take(3).toArray()
.subscribe(onNext: {
print($0) })
.disposed(by: disposeBag)
但当我用这种方式创作时。
即使我只有 2 个元素,观察者也总是发出信号。
我不知道有什么区别。
主要区别在于of
也发送一个已完成的事件。您可以检查下面的示例,第二个“completed”将不会被调用。
你必须写observer.onCompleted()
after observer.onNext("2")
它为了具有相同的逻辑。
Observable.of("1", "2").subscribe(onCompleted: {
print("completed")
})
Observable<String>.create { observer in
observer.onNext("1")
observer.onNext("2")
return Disposables.create()
}
.subscribe(onCompleted: {
print("completed")
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)