Observable 验证每个项目
Observable validate each item
如果条件失败,如何验证 Observable
和 return 中的每一项错误?
现在我在里面使用 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())
);
我可以使用任何内置方法代替这个吗?
您可以使用 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)
);
如果条件失败,如何验证 Observable
和 return 中的每一项错误?
现在我在里面使用 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())
);
我可以使用任何内置方法代替这个吗?
您可以使用 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)
);