当前位置: 首页 > 知识库问答 >
问题:

如何在单声道为空的情况下返回null

夏振国
2023-03-14

我正在调用一个外部服务来获取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;
                    });

共有1个答案

龙兴贤
2023-03-14

尝试以下操作:

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

return externalClient.getExternalId()
                     .defaultIfEmpty(null)
                     .map(id -> {
                        entity.setExternalId(id);
                        return entity;
                     });
 类似资料:
  • 基本上,我试图实现的是调用第二个存储库(一个)或抛出一个异常,这取决于调用第一个存储库的结果。 我最初的想法是这样的: 这将对应于以下非反应性方法: 我还没有找到一种方法来以反应性非阻塞的方式做到这一点。所有我需要的是抛出一个错误,如果一个空的出来的第一个调用,并继续管道,如果不是空的;但我似乎不能使用或在这里正确,和没有帮助,因为它跳过了空的。 如果我使用而不是,我有一个解决办法,但我不太满意它

  • 在选定的方法执行后,如何使菜单再次显示? 我有菜单选项打印到控制台。然后接受用户输入(1-6),调用相应的方法,然后返回菜单,供用户再次从菜单中选择。 选择的方法执行后,程序刚好结束。

  • 问题内容: 我有一个适用于Django应用的命令行Python API。当我通过API访问该应用程序时,它应该返回JSON,而在浏览器中它应该返回HTML。我可以使用不同的URL访问不同的版本,但是如何只用一个模板在views.py中呈现HTML模板和JSON ? 要呈现HTML,我将使用: 但是如何在不放置JSON模板的情况下对JSON做同样的事情?(应为而不是) 什么将决定JSON和HTML输

  • 我正在尝试使用SpringBoot2.0和新的reactive webFlux库。我想知道如何将通过无阻塞WebClient进行的两个调用的结果返回给我的Springboot API的调用者。我的代码是: 然而,如果我这样称呼它,我得到的回应是 而不是SearchResponse对象的内容。我觉得我可能错过了一个基本的点,这是如何工作的!我的想法是,因为WebClient没有阻塞,所以我可以向we

  • 我正在尝试将嵌套映射转换为JSONObject,如下所示: (我试着按照这个例子放HashMap 我这样称呼它 我不明白的是为什么 null?据我所知,返回一个