我必须进行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()

关于kotlin - Kotlin的Zip 4 Observables,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57321767/

10-09 16:51