ios - Concat 运算符 RxSwift

标签 ios swift reactive-programming concat 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)
})

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

非常感谢。

最佳答案

第一个 observable 永远不会结束。您可以停止它添加 take(1):

Observable.concat([first.take(1), second])

关于ios - Concat 运算符 RxSwift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50839071/

相关文章:

ios - 如何编写带有参数的url请求以便返回字符串?

ios - SpriteKit 中未呈现的场景

ios - Firebase 中的 Like 按钮

ios - swift 3 : unexpectedly found nil while unwrapping an Optional value

rx-java - 单流和多个订阅者

java - 在 IntelliJ IDEA 中调试 Java 期间生成的变量名称中的美元符号是什么意思?是闭包吗?

R Shiny Tabsets 同时处理

ios - UITableViewCell 并在单元格中重新定位 UILabels

swift - 无法推断通用参数 'Entity'

ios - 将 View (例如 Text())的不透明度设置为 0 或将背景设置为 Color.clear 会导致其不被绘制