1

我的应用程序中有一个链接操作,我有一些数据的列表,iteratable observable一旦迭代完成,我将遍历列表,我将执行一些不依赖于前一个列表的其他操作,所以我需要的是在这两个操作之间,我需要阻塞(或屏障),直到第一个操作完成并继续第二个操作。

例子

Observable.fromIterable(listOf("A","B","C","D"))
          .map{
            doSomeTask(it)
          } 
   // I need a blocking here, once this iteration completes i will proceed with the below task, but i don't need of toList() to block since i don't want the data,       
          .map{
            doSomeOtherTask()
          }

谁能帮我解决这个问题?

4

2 回答 2

0

您可以做的如下:

Observable.fromIterable(listOf("A", "B", "C", "D"))
        .subscribeBy(
            onNext = {
                doSomeTask(it)
            },
            onComplete = {
                doSomeOtherTask()
            }
        )

这样你就可以达到预期的效果。干杯!

于 2019-05-14T14:52:15.953 回答
0

如果doOnNext您想传播每个值,或者doOnComplete当您想在迭代结束时做某事时使用。

于 2019-05-14T12:57:48.900 回答