如何将对象从flatMap传递到链中的subscribe?

问题描述 投票:1回答:1

如何将对象从flatMap传递到subscribe链中?在下面的代码片段中,如何在链中向下访问blog对象?

    Single<HttpResponse<JsonNode>> singleHttpClient = httClient.post();
    singleHttpClient .toObservable().flatMap(httpResponse -> {
        if(httpResponse.getStatus() == 200) {
            JsonNode responseNode = httpResponse.getBody();
            List<JSONObject> blogObjects = iterateFrom(responseNode.getObject().getJSONArray("blogs"))
        }
        return Observable.fromIterable(blogObjects).toList().toObservable();
    }).flatMap(jsonObjects -> Observable.fromIterable(jsonObjects))
            .flatMap(jsonObject -> {
                return Observable.just(new Blog(jsonObject.getString("id"), jsonObject.getString("guid")));
            }).flatMap(blog -> {
                Single<HttpResponse<JsonNode>> singleHttpClient2 = httpClient2.post();
                singleHttpClient2.getParams().put("guid", blog.getImageGuid());
                return singleHttpClient2.postAsBinary().toObservable();
            }).subscribe(javaScriptObjectHttpResponse -> {
                JavaScriptObject jsoBody = javaScriptObjectHttpResponse.getBody();
                doSomethingWith(blog, jsBody); // How to access `blog` from here?
            });
java rx-java
1个回答
0
投票

在项目反应器中,存在一个名为zip的运算符,用于绑定Monos和Fluxes(类似于rx-java中的Observables,以便可以将多个项向下传递(作为元组)在管道中。

rx-java应该存在类似的运算符。

有用的堆栈溢出问题,Rxjava Android how to use the Zip operator

© www.soinside.com 2019 - 2024. All rights reserved.