我的用例是:我得到一个永久链接列表,并且需要每个永久链接发出两个REST请求以获取部分数据.当两个请求都回来时,我想将它们的信息合并在一起并对它做一些事情(这里 - 打印出来).我想用代码使用zip运算符来完成它.这是我当前的代码(以及我正在使用的库的模拟):
public class Main {
public static void main(String[] args) {
ContentManager cm = new ContentManager();
Observable
.from(cm.getPermalinks(10))
.flatMap(permalink -> Observable.zip(
Observable.<Content>create(subscriber -> cm.getDataByPermalink(permalink, new SubscribingRestCallback(subscriber))),
Observable.<Content>create(subscriber -> cm.getStreamByPermalink(permalink, new SubscribingRestCallback(subscriber))),
(dataContent, streamUrlContent) -> {
if (dataContent == null || streamUrlContent == null) {
System.err.println("not zipping " + dataContent + " and " + streamUrlContent);
return Observable.empty();
}
return new Content(dataContent.permalink, dataContent.logoUrl, streamUrlContent.streamUrl);
}))
.subscribe(System.out::println);
}
}
class SubscribingRestCallback implements RestCallback {
private final Subscriber<? super …Run Code Online (Sandbox Code Playgroud) rx-java ×1