gpt4 book ai didi

ios - RxSwift:数据库事件和差异计划程序存在问题

转载 作者:行者123 更新时间:2023-12-01 21:22:09 25 4
gpt4 key购买 nike

我正在使用该领域作为后端。使用RxSwift,我可以在DB表中观察到某些列(它跟踪未决状态)。得到事件后,我切换到另一个Serial计划表,以将列的值设置为flatMap块中的Progress状态(返回可完成)。现在我的问题是,如果数据库中有太多事件,我的可观察触发器会多次触发,而不必等待我的flatMap块完全完成。
这导致代码多次处理同一个实体,因为在再次将值更新到DB之前会触发事件。

Realm func

func downloadIconForUsers() -> Observable<[Person]> {

// here I do fetch on the main thread and return for a filter for PENDING STATE
}



realmDB.downloadIconForUsers()
.observeOn(differentSchedular)
.filter { !$0.isEmpty}
.flatMap {
//map over all entity and change state to progress
let allProgress = 0.map { //map over all entity and change state to progress }
userDB.updatePerson($0).do {
//onCompleted
Download all pending state icons
}

}

最佳答案

本文将为您提供帮助:RxSwift's Many Faces of FlatMap
TL; DR是flatMap有多种不同版本。您正在使用的是一个合并版本,显然是您不需要。考虑改用flatMapFirstflatMapLatestconcatMap。您将使用哪种方式取决于您遵循的行为。

关于ios - RxSwift:数据库事件和差异计划程序存在问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63715446/

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