Concat 运算符 RxSwift

use*_*360 1 concat reactive-programming ios swift rx-swift

我有一些这样的代码:

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)
})
Run Code Online (Sandbox Code Playgroud)

我对 concat 运算符的了解是“它订阅集合的第一个序列,中继其元素直到它完成,然后移动到下一个。重复该过程,直到使用了集合中的所有可观察对象”。所以我期望代码片段的结果是 1、4、5、6,但我得到的只是 1。请教我我对 concat 运算符的误解。

非常感谢。

CZ5*_*Z54 5

first观察到的永远不会结束。您可以停止添加take(1)

Observable.concat([first.take(1), second])
Run Code Online (Sandbox Code Playgroud)