在 kotlin 中压缩 4 个可观察对象

Zip 4 observables in kotlin

我必须打 4 个 api 电话,然后等到所有电话都打完。我想用他们的名字分别处理每个数据,但不知道如何在 kotlin 中做到这一点。

    val observables = mutableListOf<Single<ApiResponse>>()

    observables.add(repository.getFirstApiData())
    observables.add(repository.getSecondApiData())
    observables.add(repository.getThirdApiData())
    observables.add(repository.getFourthApiData())

    Single.zip(observables) { array ->

    }
            .subscribe()

这工作正常,但我不想按数组迭代,但我想以某种方式将它映射到 4 个变量

你可以这样写

    Single.zip(
        repository.getFirstApiData(),
        repository.getSecondApiData(),
        repository.getThirdApiData(),
        repository.getFourthApiData(),
        Function4<ApiResponse, ApiResponse, ApiResponse, ApiResponse, Unit> { t1, t2, t3, t4 ->
            println("$t1 $t2 $t3 $t4")
        }
    ).subscribe()