如何验证Observable
中的每个项目,如果条件失败则返回错误?
现在我在switchMap
内部使用if
,但此解决方案看起来不太好:
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())
);
我可以使用任何内置方法代替吗?
答案 0 :(得分:1)
您可以使用doOnNext()
来抛出异常。
Observable.just(1, 2, 3, -1, 4)
.doOnNext(x -> {
if (x < 0) throw Exception("Input value should be positive");
})
.subscribe(
x -> System.out.printf("value=%d\n", x),
err -> System.out.printf("error: %s\n", err.message)
);