gpt4 book ai didi

android - 如何迭代 Single>,然后根据条件执行任务?

转载 作者:行者123 更新时间:2023-11-29 01:00:35 26 4
gpt4 key购买 nike

我有一个返回 Single<List<Item>> 的方法, 迭代列表的唯一方法是 flattenAsObservable() :

getListOfItems()
.flattenAsObservable {items -> items}
.flatMapSingle { item ->
doSomethingWith(item)
}

doSomethingWith(item) ,我更新了一个 item数据库中的对象。

现在,我想“统计”数据库中的更新项,如果是N,则执行另一次更新。

我正在寻找类似的东西:

getListOfItems()
.flattenAsObservable { items -> items }
.flatMapSingle { item ->
doSomethingWith(item)
}
.flatMapSingle { items -> items } // I can't access items here, obviously.
// I think I need another call to
// getListOfItems() and then filter(),
// but don't know how to do that.

.filter{ items.size() == X }
.flatMapSingle {
doSomething()
}

最佳答案

保留原始项目标签并重新构建一个新列表。但是请注意,您还没有为那些 doSomethingWith 定义数据类型,所以我假设它们返回一些 Single 值。

getListOfItems()
.flattenAsObservable { items -> items }
.flatMapSingle { item ->
doSomethingWith(item).map { item }
}
.toList()
.flatMap {
if (it.size() == N) {
doSomething()
} else {
Single.just(it); // make it return something with the same type as doSomething()
}
}

关于android - 如何迭代 Single<List<Item>>,然后根据条件执行任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51531362/

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