H5W3
当前位置:H5W3 > 问答 > 正文

Spring5 WebFlux问题.

/**
* 模拟服务端
* @param token
* @param bodyMap
* @return
*/public Mono<JSONArray> doPostAndSaveList(String token, Map<String, Object> bodyMap) {
log.info("进入doPost方法");
Disposable subscribe = WebClient.create(baseUrl)
.post()
.uri(uriBuilder -> uriBuilder.path(uri)
.queryParam("access_token", token)
.build())
.bodyValue(bodyMap)
.retrieve()
.bodyToMono(JSONObject.class).subscribeOn(Schedulers.elastic())
.flatMap(
jsonObject -> {
//处理结果
String groupsStr = jsonObject.getString("group_chat_list");
log.info("groupsStr:{}", groupsStr);
List<GroupListResponse> groupListResponses = null;
JSONArray jsonObjectJSONArray = jsonObject.getJSONArray("group_chat_list");
if (jsonObjectJSONArray != null) {
for (int i = 0; i < jsonObjectJSONArray.size(); i++) {
System.out.println(jsonObjectJSONArray.getJSONObject(i));
}
return Mono.just(jsonObjectJSONArray);
} else {
return Mono.empty();
}
}).subscribe();
return null;
}

如代码,我这里设定了返回null,但是其实是想返回请求回来的flatMap中的jsonArray.
虽然不subscribe可以将返回值Disposable改为Mono<JSONArray>,但是不进行subscribe是无法获取数据的.
这个数据作为另一个方法来进行业务逻辑处理使用~
有什么办法呢?

回答

String groupsStr
这个声明到log.info(“进入doPost方法”); 下面

再return groupsStr;

未经允许不得转载:H5W3 » Spring5 WebFlux问题.

赞 (0)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址