【问题标题】:Terminal map operation not getting invoked in Mono在 Mono 中未调用终端映射操作
【发布时间】:2019-03-25 21:58:09
【问题描述】:

以下是相关代码:

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);
  }

谁能告诉我为什么会这样?

【问题讨论】:

    标签: java stream reactor


    【解决方案1】:

    map(Function) 只是创建一个新的Mono,但诀窍是该函数不直接评估。当您使用它时会对其进行评估,例如调用subscribe()

    【讨论】:

      猜你喜欢
      • 2022-11-28
      • 2015-12-09
      • 1970-01-01
      • 1970-01-01
      • 2018-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-12
      相关资源
      最近更新 更多