当多个单打完成时执行某项操作(也称为“单打的最新合并”)

时间:2018-07-06 13:15:19

标签: kotlin rx-java

我想在同时设置unitsvariables时执行某些操作(通过Single<T>,而不是Observable)。该怎么做?

// getUserId(), getSomething(), getSomethingElse() all return Single<T>

getUserId().flatMap { getSomething(it) }.subscribe({ data -> units = data }) 
getUserId().flatMap { getSomethingElse(it) }.subscribe({ data -> variables = data }) 

execute(units, variables)

1 个答案:

答案 0 :(得分:4)

您可以使用Zip运算符:

val name = Single.just("Jake")
val age = Single.just(26)

Single.zip<String, Int, String>(name, age, BiFunction { n, a -> "$n is $a years old" })
        .subscribe { result -> print(result) }

将打印“杰克今年26岁”。