也许我误解了一些基本概念,但它看起来像是一个错误。将可观察的数组转换为可观察的单个项时,生成的observable永远不会完成。更具体地说,.debug()//#1行执行日志完成事件,但.debug()//#2不执行。在完成“数组”可观察后,有关如何使'items'可观察的任何想法都完成了吗?
let array: Observable<[Any]> = Observable.just([0])
let items = array.flatMap {
Observable.from($0)
.debug() // #1
}
.debug() // #2
答案 0 :(得分:0)
Observable
.just([0, 1])
.debug("0>")
.flatMap({ Observable.from($0) })
.debug("2>")
.subscribe()
.disposed(by: disposeBag)
日志是:
0> -> subscribed
0> -> Event next([0, 1])
0> -> Event completed
0> -> isDisposed
2> -> subscribed
2> -> Event next(0)
2> -> Event next(1)
2> -> Event completed
2> -> isDisposed
所以,它对我有用。你确定你在收到意外结果后发布的方式完成了吗?