0
Observable
의 각 항목의 유효성을 검사하고 조건이 실패하면 오류를 반환하는 방법은 무엇입니까?
은 지금은 내부 if
와 switchMap
를 사용하고 있지만,이 솔루션은 매우 좋은하지 같습니다관찰 할 수있는 각 항목의 유효성 검사
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. 필터에 예외를 던질 수 있으며 연산자가 오류를 전달합니다. 2. 반응성 스트림에 대한 구현이 적절하지 않다고 생각합니다. 예외는 더 이상 스트림을 청취/구독 할 수 없다는 것을 의미합니다. Exception 대신 ErrorState를 사용하는 것이 좋습니다. 예를 들어 유효성 검사 결과를 나타내는 값 또는 예외가 포함 된 결과입니다. @ g4s8 –