Sok*_*lov 0 spring project-reactor
我正在阅读有关错误处理的 Reactor 参考文档,但似乎有些错误。例如本节关于回退方法:
Flux.just("key1", "key2")
.flatMap(k -> callExternalService(k))
.onErrorResume(e -> getFromCache(k));
Run Code Online (Sandbox Code Playgroud)
但是onErrorResume()lambda 只接受一个参数e(可抛出错误)。如何k(由通量发射前值),此处引用?
文档中还有其他类似的代码片段。我读错了吗?或者,如果文档确实不正确,我该如何处理这种情况:通过执行具有先前值的替代路径来从错误中恢复?
是的,我认为您在文档中发现了一个错误。
如果你想使用k的呼叫onErrorResume必须发生的说法里面flatMap,像这样:
Flux.just("key1", "key2")
.flatMap(k -> callExternalService(k)
.onErrorResume(e -> getFromCache(k))
);
Run Code Online (Sandbox Code Playgroud)
关于您的评论:不可能将值作为方法的一部分进行处理,onErrorXXX因为在处理值时可能不会发生有问题的错误。例如,它可能发生在处理背压(即请求更多元素)或订阅时。
| 归档时间: |
|
| 查看次数: |
269 次 |
| 最近记录: |