0
Observable
で各アイテムを検証し、条件が失敗した場合にエラーを返す方法を教えてください。
は今、私の中にif
とswitchMap
を使用していますが、このソリューションは非常にいいではないです:Observable各アイテムの有効性を確認
Observable.just(1, 2, 3, -1, 4)
.switchMap(x -> {
if (x >= 0) {
return Observable.just(x);
} else {
return Observable.error(new Exception("Input value should be positive"));
}
})
.subscribe(
x -> System.out.printf("value=%d\n", x),
err -> System.out.printf("error: %s\n", err.getMessage())
);
が、私はこれの代わりに任意の組み込みメソッドを使用することはできますか?
はフィルタですか? –
@PhoenixWang 'filter'は単に" bad "値を落としますが、私は例外 – g4s8
が必要です。1.例外をフィルターに投げてオペレータがエラーを送出します。私はそれが反応的なストリームのための良い実装ではないと思う。例外は、ストリームをもう聞く/購読できないことを意味します。例外の代わりにErrorStateを使用することをお勧めします。たとえば、値には、検証結果を示す値または例外が含まれています。 @ g4s8 –