仅为RxJava链中的最后一项抛出异常

时间:2017-08-18 14:15:02

标签: android rx-java rx-java2

我的Android应用中有wifi地址列表。另外,有WifiManager接受地址并尽可能连接。连接过程是RxJava Completable,在连接失败的情况下抛出异常。如何逐一检查所有地址,并仅在最后地址失败时抛出异常?

1 个答案:

答案 0 :(得分:1)

除了上一个Completable

之外,只需删除所有错误
List<String> addresses = ...
int s = address.size();

Flowable.range(0, s)
.flatMapCompletable(index -> {
    Completable c = manager.checkAddress(addresses.get(index));
    if (index != s - 1) {
        c = c.onErrorComplete();
    }
    return c;
}, false, 1)
.subscribe(...)