2017-07-23 1 views
0

J'essaie de déclencher 3 appels HTTP Api en utilisant Android RxJava via l'opérateur zip.Deux ou plusieurs appels HTTP basés sur certaines conditions à l'aide de l'opérateur zip de Rx Java

Mon problème est, lors du déclenchement de 3 API, pour une API, je dois vérifier si l'utilisateur est connecté ou non. Si l'utilisateur n'est pas connecté, je ne devrais pas déclencher trois appels d'API (je devrais déclencher seulement deux appels d'API). Si l'utilisateur est connecté, je dois déclencher 3 appels d'API. Des méthodes intégrées pour déclencher deux ou trois appels d'API en fonction des conditions?

Répondre

0

Voici un exemple qui devrait plutôt bien fonctionner. Faites-moi savoir si votre méthode pour vérifier si un utilisateur est connecté est asynchrone et je vais poster une réponse de suivi:

public Observable<Type> getUserData(){ 
    if(getCurrentUser() != null){ 
     return Observable.zip(api1(), api2(), api3(), (1, 2, 3) -> { 
      *Combining Function* 
     }); 
    }else{ 
     return Observable.zip(api1(), api2(), (1, 2) -> { 
      *Combining Function* 
     }); 
    } 
}