RxJava-循环执行异步任务并等待完成

时间:2014-04-13 23:04:21

标签: groovy rx-java

我正在尝试对n个项目进行异步处理,并等待所有项目完成后再继续。

我在whatfunc?位置放置了什么才能订阅onComplete一次?

Observable.range(0, n)
    .<whatfunc?>({ s ->  doAsyncWorkThatReturnsObservable(s) })
    .(other?)
    .subscribe({println "All complete"})

由于

1 个答案:

答案 0 :(得分:1)

flatMap

确保在订阅中提供正确参数的闭包。调整链接的示例以适合您提供的示例:

Observable.range(0, n)
    .flatMap({n -> doAsyncWorkThatReturnsObservable(n)})
    .subscribe(
       { println(it); },                          // onNext
       { println("Error: " + it.getMessage()); }, // onError
       { println("Sequence complete"); }          // onCompleted
    );