如何组合多个异步 RxJava Observables?

How to combine multiple async RxJava Observables?

订阅两个不同的 Observable 然后阻塞直到两个都完成的最佳方法是什么?

    Observable<Integer> o1 = getSomeInts();
    Observable<Long> o2 = getSomeOtherLongs();

    o1.forEach(it -> sendSomeEvent(it)); // doesn't have to be forEach
    o2.forEach(it -> sendSomeOtherEvent(it));

    // block until o1 and o2 are complete

这样就可以了:

Observable.merge(
        o1.doOnNext(it -> sendSomeEvent(it)).ignoreElements(),
        o2.doOnNext(it -> sendSomeOtherEvent(it)).ignoreElements())
    .count().toBlocking().single();