首页 > 解决方案 > 如果 Mono 为空,如何返回 null

问题描述

我正在调用外部服务来获取externalId,如果该服务不起作用,我所需要的只是填充值null

return externalClient.getExternalId() //returns Mono<String> or Mono.empty()
                    .map(id -> {
                        //in case of empty stream, i need call entity.setExternalId(null);
                        entity.setExternalId(id);
                        return entity;
                    });

标签: javaspringwebflux

解决方案


尝试以下操作:

return externalClient.getExternalId()
                     .map(id -> {
                        entity.setExternalId(id);
                        return entity;
                     })
                     .switchIfEmpty(() -> {
                        entity.setExternalId(null);
                        return Mono.just(entity);
                     });

推荐阅读