.flatmap {observable.from(array)}永远不会在rxswift中完成



也许我正在误解一些基本概念,但对我来说似乎是一个错误。当将可观察到的阵列转换为可观察到的单个项目时,可观察到的可观察到永远不会完成。更具体地说,.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

所以,它对我有用。您确定您已经按照收到意外结果时的发布方式完成了吗?

最新更新