使用rx-java2进行验证:出现第一个错误

我正在尝试使用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,这会使我的代码难看。有什么帮助吗?


ABOUTYOU
浏览 108回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java