【发布时间】:2019-02-21 19:07:46
【问题描述】:
我最近开始学习retrofit 和rxjava。我正在寻找有关如何等待获得第一个可观察结果的任何想法。基本上,我想将它应用于简单的登录。第一个 api 调用正在获取服务器时间。第二个 api 调用将等待第一个调用的结果(即服务器时间)并利用它。
Retrofit retrofit = RetrofitClient.getRetrofitClient();
LocalServerInterface apiInterface = retrofit.create(LocalServerInterface .class);
Observable<ServerTime> timeObservable = retrofit
.create(LocalServerInterface .class)
.getTime()
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread());
Observable<ServerNetwork> serverNetworkObservable = retrofit
.create(LocalServerInterface .class)
.getNetworks(//valuefromapicall1, anothervalue)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread());
现在,我被困在这里了。在第二个 observable 上,特别是在 getNetworks 方法上,我想使用从第一个 observable 中得到的东西。有什么想法吗?
编辑:
我想先处理调用 1 的结果,然后再将其提供给 api 调用 2。可以吗?
【问题讨论】:
-
我认为使用
flatMap可以解决您的问题。你试过了吗 -
好吧,我换个方式说,如果你能同时带上 2 个数据,我的意思是 1st 和 2nd observable,可以吗?然后你可以玩对象或集合。
标签: android rx-java retrofit retrofit2