Je suis nouveau à RxJava. Mon expérience est principalement de ces tutoriels: Here, et here.RxJava: Sachez quand l'observation est terminée et renvoyez Boolean Observable à l'appelant
Maintenant, je me suis retrouvé dans une situation où j'ai appel API avec Retrofit2 qui retournera un Obesrvable<AccessToken>
. Le client appellera ce service comme suit:
public Observable<TokenResult> authenticateWithClientCredentials() {
return authService.authenticate("client_credentials").take(1);
}
Lorsqu'une classe appelée Authenticator
appellera #authenticateWithClientCredentials()
du client.
Ce que je voudrais obtenir est de retourner un Observable<Boolean>
de la classe Authenticator
, une fois que l'appel d'API est terminée, à savoir l'intérieur onComplete()
pour indiquer que le jeton d'accès a été récupéré et enregistré dans le cache à l'intérieur du succès classe Authenticator
.
J'ai essayé l'opérateur defer
mais je suis toujours perdu. approche
EDIT
Je sais que je peux passer un rappel dans les paramètres, mais n'est pas l'idée de Rx pour remplacer l'ancien callbacks classique?
Merci pour la réponse, mais pas tout à fait ce que je voulais. #authenticateWithClientCredentials n'est pas une méthode de la classe Authenticator, c'est une méthode de la classe Client. L'Authenticator appellera authenticateWithClientCredentials et mettra en cache le jeton, après quoi je souhaite que l'Authenticator retourne un Observable pour indiquer que le jeton a été correctement défini dans le cache. –
@MotassemJalal, mise à jour – azizbekian
Pouvez-vous s'il vous plaît m'expliquer ce qui est (et pourquoi) Completable est plus préféré? –