如何在链中连接多个Observable



我正在使用TheMovieDb API https://www.themoviedb.org/documentation/api,如果我想要进行身份验证,我必须使用三个步骤来完成此操作—获取令牌,使用令牌创建会话并获取会话id。我想用3个Observable来做这个,但是我不知道怎么用链Observables来做这个。

My Observables

public interface AuthenticationService {
@GET("authentication/token/new")
Observable<Token> getMdbToken();
@GET("authentication/token/validate_with_login")
Observable<Token> createSessionId(Credentials credentials,String token);
@GET("authentication/session/new")
Observable<Session> getSessionId(String token);
}

是否有可能将Observables链成一个Observable ?我没有使用Observables的经验

flatMap操作符是理想的。只需组成3个可观察对象:

getMdbToken()
        .flatMap(new Func1<Token, Observable<Token>>() {
            @Override
            public Observable<Token> call(Token token) {
                return createSessionId(credentials, token);
            }
        }).flatMap(new Func1<Token, Observable<Session>>() {
    @Override
    public Observable<Session> call(Token token) {
        return getSessionId(String token); ;
    }
});

相关内容

  • 没有找到相关文章

最新更新