我正在使用Retrofit和RxAndroid。现在我想调用api获取用户信息,然后使用此信息作为参数调用另一个api以获取更多信息。 我该怎样做才能达到这个目的?
P / S:可以使用回调来完成,但我想使用RX-Android风格答案 0 :(得分:2)
您可以使用flatMap。
的伪代码:
apiService.getUser()
.flatMap(user -> apiService.getUserMessages(user.getId()))
.subscribe(messages -> {
}, error -> {
});
答案 1 :(得分:0)
您可以这样做:
Observable<User> userObservable = api.getUserInformation();
userObservable.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<User>() {
@Override
public void accept(User user) throws Exception {
//do what you want this the user
}
});
以下代码将在新线程中执行操作,并且会在主线程上点击回调。
答案 2 :(得分:0)
如果您想要递归,则应使用concatMap()
。此方法将确保您按指定的顺序进行多次调用。 flatMap()
更随机。
您可以查看有关此link的更多信息。