等待多个异步调用在RxJava中完成

qib*_*bra 5 java asynchronous reactive-programming rx-java

我的情况很简单,但是我似乎无法在任何地方找到它。

我有一组要迭代的元素,每个元素调用一个异步函数,然后等待所有元素完成(这又以异步方式发生,以函数的逻辑实现)。我对RxJava相对较新,过去曾在NodeJS中通过将回调传递给函数并在最后等待来轻松地做到这一点。这是我需要的伪代码(元素的迭代器不需要同步也不需要排序):

for(line in lines){
 callAsyncFunction(line);
}
WAIT FOR ALL OF THEM TO FINISH
Run Code Online (Sandbox Code Playgroud)

非常感谢您的帮助!

Tas*_*kos 4

使用接收:

Observable
.from(lines)
.flatMap(line -> callAsyncFunctionThatReturnsObservable(line).subscribeOn(Schedulers.io())
.ignoreElements();
Run Code Online (Sandbox Code Playgroud)

此时,根据您想要执行的操作,您可以使用 an.switchIfEmpty(...)来订阅另一个可观察量。