我试图理解反应式程序的一件事是适当地处理没有结果的情况。
假设我有一个 API,可以选择检索用户的最新订单。我想将没有找到用户的行为留给调用者。在普通的旧java中,我会写这样的东西:
Optional<Order> getLatestOrder(int userId) { ... }
在 webflux 中,我试图弄清楚是否应该返回等效函数Mono<Optional<Order>>或Mono<Order>。
如果我添加getLatestOrder()到反应流中,如果我发出空单声道,它可能会停止。做类似的事情也感觉很奇怪:
getLatestOrder().defaultIfEmpty(new Order());
因为现在感觉就像一个哨兵值,代表它不存在。
Mono是否有关于使用and的模式的指导Optional?Optional当你真的想表达一些不存在的东西时,有没有正确的方法可以完全放弃?