Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
479 views
in Technique[技术] by (71.8m points)

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
等待大神解答

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
...