我正在使用Retrofit和RxAndroid。現在我想調用api來獲取用戶信息,然後使用這些信息作爲參數來調用另一個API來獲取更多信息。 我該怎麼做才能達到這個目的?RXAndroid:可觀察等待另一個可觀察的完成
P/S:它可以回調做,但我想與RX-Android的風格
我正在使用Retrofit和RxAndroid。現在我想調用api來獲取用戶信息,然後使用這些信息作爲參數來調用另一個API來獲取更多信息。 我該怎麼做才能達到這個目的?RXAndroid:可觀察等待另一個可觀察的完成
P/S:它可以回調做,但我想與RX-Android的風格
您可以使用flatMap該做的事。
僞代碼:
apiService.getUser()
.flatMap(user -> apiService.getUserMessages(user.getId()))
.subscribe(messages -> {
}, error -> {
});
你可以做這樣的事情:
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
}
});
下面的代碼會做的動作在一個新的線程,並且會打回調主線程。
如果你想遞歸,你應該使用concatMap()
。此方法將確保您按指定的順序進行多個呼叫。 flatMap()
更隨機。
您可以檢查有關此link的更多信息。
它工作。非常感謝你 –