2015-10-07 1 views

Répondre

4

Supposons que vous avez deux un observables qui retourne AuthToken de prefs partagées et un autre qui retourne AuthToken du serveur:

Observable<AuthToken> authTokenFromPrefs = ...; 
Observable<AuthToken> authTokenFromServer = ...; 

THEN observable à partir des deux ci-dessus qui utilise le AuthToken et renvoie la résultats d'un appel de service:

Observable<T> results = 
    authTokenFromPrefs 
    .filter(AuthToken::isValid) 
    .switchIfEmpty(authTokenFromServer) 
    .flatMap(authToken -> callService(authToken)); 
+0

Et puis l'appel réel devrait être fait avec un 'flatMap'? Transformer l'auth observable en un appel observable, non? – RCB

+0

Oui, bien sûr que vous pourriez le faire. J'ai mis à jour la réponse avec une utilisation possible. –

+0

@DaveMoten: 'switchIfEmpty' est marqué comme' @ Experimental'. Suggérez-vous de l'utiliser? – rciovati