我正在尝试使用rx-java并行验证一个大文件,并在发生任何验证错误时立即返回。我的代码如下所示:
Observable<ValidationError> observable = Observable.fromIterable(lines).flatMap(
line -> Observable
.just(line)
.subscribeOn(Schedulers.computation())
.map(lineParser::parse)
.map(lineValidator::validator) //validation returns Optional<ValidationError>
.filter(Optional::isPresent)
.map(Optional::get)
);
这会导致文件中出现任何错误的Observable,但我不知道该如何实现,以便在第一次出现时就停止计算。我已经看到有一个blockingFirst方法,该方法似乎将返回第一个错误,但是应该在文件中未发现任何错误时引发Exception,这会使我的代码难看。有什么帮助吗?
相关分类