首页 > 解决方案 > 对 Flowable 发出的每个元素执行 Single

问题描述

假设我正在使用这个模拟示例逐行读取文件

Flowable.fromArray("a","b","c","d")

现在我想将这些行中的每一行发送到后端。让我们使用这个模拟 observable 来简化:

Single.timer(1, TimeUnit.Seconds).map{true}

这将返回 true 以模拟成功的响应。

我想继续一行一行地发送,等待成功信号再发送另一行。

这可能吗?什么是最干净的解决方案?

标签: javakotlinrx-java

解决方案


听起来你想要concatMapSingle

将上游项目映射到 SingleSources 并在另一个成功后订阅它们,如果此 Flowable 或当前内部 SingleSource 失败,则发出它们的成功值或立即终止。

Flowable.fromArray("a","b","c","d")
    .concatMapSingle(item -> /* Send item to backend */)

推荐阅读