You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

响应式调用中,当Order的truckID为空时如何返回空DriverDto?

解决方案

你可以通过在flatMap操作符中加入条件判断,结合Mono.just()返回空的DriverDto对象来实现需求。具体实现代码如下:

Mono<OrderPublicDto> order = orderWebClient.getOrderById(orderID, bearerToken);

Mono<DriverDto> driver = order.flatMap(o -> {
    // 判断OrderPublicDto的truckID是否为null
    if (o.getTruckID() == null) {
        // 返回空的DriverDto实例
        return Mono.just(new DriverDto());
    } else {
        // truckID不为null时,正常调用获取Driver的接口
        return vehicleWebClient.getDriverById(o.getDriverId(), bearerToken);
    }
});

额外说明

  • 如果你需要的“空DriverDto”是指无元素的Mono(即不返回任何对象),可以将Mono.just(new DriverDto())替换为Mono.empty()。
  • 想要更简洁的写法,也可以用三元表达式简化逻辑:
Mono<DriverDto> driver = order.flatMap(o -> 
    o.getTruckID() == null 
        ? Mono.just(new DriverDto()) 
        : vehicleWebClient.getDriverById(o.getDriverId(), bearerToken)
);

内容的提问来源于stack exchange,提问作者Alex Grimaldo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 04:30:49