【发布时间】:2014-12-13 00:12:39
【问题描述】:
我一直在调整我的 Android 应用程序以使用 RxJava,但这样做有点麻烦。正如我在上一篇文章 (Wait for all requests in Android Volley) 中所建议的那样,我正在使用 Observables 来模拟我如何在 JavaScript 中与我的 REST API 交互。具体来说,使用 Promise 库,我编写如下调用:
$q.all([
fetchResourceA(),
fetchResourceB()
])
.then(function (responses) {
...
return fetchResourceC();
})
.then(function (response) {
...
});
在此示例中,我同时查询两个资源,收集结果,然后根据之前收集的资源中的一些参数收集第三个资源。在 RxJava 中我能做的最好的模仿是这样的:
Observable o = Observable.zip(
fetchResourceA(),
fetchResourceB(),
new Func2<ResA, ResB, Object>() {
@Override
public Object call(ResA resA, ResB resB) {
...
}
}
);
但我很难像在 JavaScript 中那样编写它们。我是否需要简单地创建第二个 observable 并在 zip 的回调中订阅它?这就是我现在正在做的事情,它有效,但我想知道是否有更优雅、更适合反应的方式来构建我的请求。
【问题讨论】:
标签: android