RxSwift 结合异构的 observables

Posted

技术标签:

【中文标题】RxSwift 结合异构的 observables【英文标题】:RxSwift Combining heterogeneous observables 【发布时间】:2019-07-23 10:36:53 【问题描述】:

我在 Realm 数据库中有两个对象聊天和消息。我从 db 获取并获得两个 observables。消息对象有chatId,我可以通过它获取聊天对象。 chats() - 给出 Observable messages() - 给出 Observable

问题是当我在messages() 上使用map 函数时,我得到了chatId,现在我需要聊天数组来过滤chatId 并获取聊天对象。

我该怎么做?我可以结合两个可观察对象并在单个闭包中发出两个数组吗?如果是,那么如何?

【问题讨论】:

【参考方案1】:

根据上下文,您想使用combineLatestwithLatestFrom

我不太了解上下文,因为您说您有一个 Observable<[Message]>,但您从该数组中获得了一个 chatID。我希望你能得到一组聊天 ID。

【讨论】:

是的,你是对的。我确实使用了combinedLatest。 let combineObservable: ObservableStack Overflow Chat, [Message])> = Observable.combineLatest(useCases.output.chats(), useCases.output.allMessages())

以上是关于RxSwift 结合异构的 observables的主要内容,如果未能解决你的问题,请参考以下文章

RxSwift 结合 observable 和条件

在 RxSwift 中处理嵌套的 observables

烷烃同分异构的种类

异构的概念?大数据量的异构处理?

html表项中的搜索过滤器【表数组是异构的】

Observable 的 RxSwift 用途