如何将对象从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?
});
在项目反应器中,存在一个名为zip
的运算符,用于绑定Monos和Fluxes(类似于rx-java中的Observables,以便可以将多个项向下传递(作为元组)在管道中。
rx-java应该存在类似的运算符。