java - 对 Flowable 发出的每个元素执行 Single
问题描述
假设我正在使用这个模拟示例逐行读取文件
Flowable.fromArray("a","b","c","d")
现在我想将这些行中的每一行发送到后端。让我们使用这个模拟 observable 来简化:
Single.timer(1, TimeUnit.Seconds).map{true}
这将返回 true 以模拟成功的响应。
我想继续一行一行地发送,等待成功信号再发送另一行。
这可能吗?什么是最干净的解决方案?
解决方案
听起来你想要concatMapSingle
:
将上游项目映射到 SingleSources 并在另一个成功后订阅它们,如果此 Flowable 或当前内部 SingleSource 失败,则发出它们的成功值或立即终止。
Flowable.fromArray("a","b","c","d")
.concatMapSingle(item -> /* Send item to backend */)