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是无法获取数据的.
这个数据作为另一个方法来进行业务逻辑处理使用~
有什么办法呢?

阅读 881
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题