gpt4 book ai didi

swift - RxSwift flatMap 最新一次无需处理

转载 作者:行者123 更新时间:2023-11-30 13:02:50 24 4
gpt4 key购买 nike

有一个简单的问题:我有一个 Variable<[Session]> ,其中Session :

class Session {
...
var rx_serverRequestable: Driver<SessionRequestable>
...
}

每当 session 拥有需要传递到后端的所有信息时,它都会发出一个 .next 事件,我希望能够 flatMapLatest在 session 数组上,执行如下操作:

let sessions: Variable<[Session]>
sessions
.flatMapLatest { sessions in sessions.map { $0. rx_serverRequestable } }
.flatMap { $0.requestFromServer() }

但我只想请求每个 session 一次。我发现当前实现失败的原因有两种:1. flatMapLatest 获取新的 session 数组,可能会处理来自仍在进行中的服务器的请求2. 每次 session 拥有需要从服务器加载的所有信息时,rx_serverRequestable 都会被调用,因此每次 session 加载任何新信息时,它都会被多次调用。我只想第一次请求 session ,我应该使用类似 .multicast 的东西吗?或.replay(1)

关于解决这两个问题或改变我的方法有什么建议吗?

最佳答案

这可以使用zip运算符http://reactivex.io/documentation/operators/zip.html来解决

关于swift - RxSwift flatMap 最新一次无需处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39735929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com