簡體   English   中英

Concat運算符RxSwift

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM