[英]Concat operator RxSwift
我有一些這樣的代碼:
let first = Observable<Int>.create({ observer -> Disposable in
observer.onNext(1)
return Disposables.create()
})
let second = Observable.of(4, 5, 6)
let observableConcat = Observable.concat([first, second])
observableConcat.subscribe({ (event) in
print(event)
})
我對concat運算符的了解是“它訂閱了集合的第一個序列,中繼其元素直到完成,然后移動到下一個序列。重復此過程,直到使用了集合中的所有可觀察對象為止”。 因此,我希望代碼段的結果將是1、4、5、6,但我得到的只是1。 請教我關於concat運算符的誤解。
非常感謝。
第first
可觀察到的永遠不會結束。 您可以添加take(1)
停止它:
Observable.concat([first.take(1), second])
除了CZ54的答案,您還可以這樣
let first = Observable<Int>.create({ observer -> Disposable in
observer.onNext(1)
observer.onCompleted()
return Disposables.create()
})
let second = Observable.of(4, 5, 6)
let observableConcat = Observable.concat([first, second])
observableConcat.subscribe({ (event) in
print(event)
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.