基于某些条件使用 Rx Java 的 zip 运算符的两个或多个 HTTP 调用

Two Or more HTTP calls based on some conditions using zip operator of Rx Java

我正在尝试通过 zip 运算符使用 Android RxJava 触发 3 个 HTTP Api 调用。

我的问题是,在触发 3 个 API 时,对于一个 API,我需要检查用户是否已登录。如果用户未登录,我不应该触发三个 API 调用(我应该只触发两个 API 调用)。如果用户已登录,那么我必须触发 3 API 次调用。是否有任何内置方法可以根据条件触发两个或三个 API 调用?

这是一个应该运行良好的示例。如果您检查用户是否登录的方法是异步的,请告诉我,我将 post 提供后续答复:

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*
        });
    }
}