我有这样的代码:
List<Mono> monoList = foo();
//await when all Monos are finished
try {
Flux.fromIterable(monoList)
.flatMap(Function.identity())
.then()
.block();
} catch (Exception e) {
log.warn("error", e);
}
当所有 MONO 成功完成时,它可以正常工作,但如果至少有一个 Mono 完成时出现错误,则它不起作用。方法block
抛出异常并中断所有其他单声道。因此,此代码会等待所有单声道成功完成或发生第一个错误时。
如何等待monoList
中的所有Monos完成(不管成功与否)
最佳答案
这有效:
try {
Flux.fromIterable(monoList)
.flatMap(Function.identity())
.then()
.onErrorContinue((throwable, o) -> {
//just ignore it we've already caught all errors
})
.block();
} catch (Exception e) {
log.warn("Polling finished with exceptions", e);
}
关于java - 如何等待List中的所有Monos完成(成功与否无关紧要),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59314257/