当多个 Singles 完成时执行某些操作(又名“combineLatest for Single”)

JGu*_*Guo 0 kotlin rx-java

units我想在和 都variables设置时执行某些操作(通过Single<T>, NOT 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)
Run Code Online (Sandbox Code Playgroud)

Ben*_*min 5

您可以使用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) }
Run Code Online (Sandbox Code Playgroud)

将打印“Jake is 26 岁”。