也许我正在误解一些基本概念,但对我来说似乎是一个错误。当将可观察到的阵列转换为可观察到的单个项目时,可观察到的可观察到永远不会完成。更具体地说,.debug()//#1行确实是日志完成事件,但是.debug()//#2却没有。关于如何使"阵列"可观察到的"物品"可观察到的任何想法?
let array: Observable<[Any]> = Observable.just([0])
let items = array.flatMap {
Observable.from($0)
.debug() // #1
}
.debug() // #2
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
所以,它对我有用。您确定您已经按照收到意外结果时的发布方式完成了吗?