我有2张单曲。首先,我收到令牌,然后,我需要使用令牌,然后,我必须从第二张单曲中保存一些信息并返回completable。 我以为可以使用completable和AndThen来做到这一点,就像这样:
String token;
IStoreProvider storeProvider;
IWebProvider webProvider;
public Completable getUserInfo(){
return Completable.fromSingle(Completable
.fromSingle(storeProvider
.getToken()
.doOnSuccess(x->token=x))
.andThen(webProvider.getUserInfo(token)
.doOnSuccess(x->storeProvider.saveUserInfo(x)));
interface IStoreProvider{
Single<String> getToken();
Completable saveUserInfo(UserInfo userInfo);
}
interface IWebProvider{
Single<UserInfo> getUserInfo(token);
}
但是它不起作用。我该怎么办?
答案 0 :(得分:0)
您的流是在执行前创建的,因此在创建期间token = null,因此您在-ms
中将得到null。
getUserInfo
将为您提供帮助。
flatMap