java - 在 Mono 中未调用终端映射操作
问题描述
以下是相关代码:
Mono<ResponseEntity<String>> res = remoteCall(HttpMethod.POST, issueTokenUrl, GsonConvertor.getInstance().serialize(request));
Mono<IssueToken> it = res.map(this::getIssueToken);
远程调用成功(状态码为 200,响应主体很好),但流程不会进入getIssueToken()
方法内部。这是方法:
private IssueToken getIssueToken(ResponseEntity<String> response) {
System.out.println("Inside the method"); //this line won't print on the console
HttpStatus statusCode = response.getStatusCode();
checkErrors(response);
return GsonConvertor.getInstance().deserialize(response.getBody(), IssueToken.class);
}
有人能告诉我为什么会这样吗?
解决方案
map(Function)
只是创建一个新Mono
的,但诀窍是该函数不直接评估。当您使用它时,它会被评估,例如通过调用subscribe()
.
推荐阅读
- java - 在 IText 7 中添加新字体
- python - 如何在熊猫数据框中创建密集排名时跳过列的空值?
- xml - 如何使用多个元素值列表在 golang 中解析 xml。并将它们存储在列表中
- mongodb - 慢计数文件
- swift - 提案:SE-0185 是如何在幕后实施的?
- javascript - 使用电子生成器构建后,电子应用程序未加载 index.html,甚至没有给出错误
- python-3.x - 代码在 PyCharm 中运行,来自终端的 ModuleNotFoundError
- ios - 如何在 ios 调整中解决 FCAlertView 的问题
- python-3.x - 多种方式解析数据框
- itext7 - Adding gray line b/w paragraph in iText 7