Rxswift Observable.of 和 Observable<String>.create 有什么区别
Rxswift What difference between Observable.of and Observable<String>.create
我是 rxSwift 的新手。我在创建 Observable 时发现了一些不同之处
Observable.of
和 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([=13=]) })
.disposed(by: disposeBag)
但是当我用这种方式创建的时候。
即使我只有 2 个元素,Observer 也会发出。
我不知道有什么区别。
主要区别在于 of
也发送完成的事件。您可以查看下面的示例,第二个 "completed" 不会被调用。
您必须在 observer.onNext("2")
之后写 observer.onCompleted()
才能具有相同的逻辑。
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")
})
我是 rxSwift 的新手。我在创建 Observable 时发现了一些不同之处
Observable.of
和 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([=13=]) })
.disposed(by: disposeBag)
但是当我用这种方式创建的时候。 即使我只有 2 个元素,Observer 也会发出。 我不知道有什么区别。
主要区别在于 of
也发送完成的事件。您可以查看下面的示例,第二个 "completed" 不会被调用。
您必须在 observer.onNext("2")
之后写 observer.onCompleted()
才能具有相同的逻辑。
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")
})