如何从头开始使用一个源一个接一个地运行

时间:2019-01-25 19:40:05

标签: java rx-java2

我有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);
}

但是它不起作用。我该怎么办?

1 个答案:

答案 0 :(得分:0)

您的流是在执行前创建的,因此在创建期间token = null,因此您在-ms中将得到null。 getUserInfo将为您提供帮助。

flatMap