Выполнить что-нибудь, когда закончится несколько одиночных игр - PullRequest
0 голосов
/ 06 июля 2018

Я хочу выполнить что-то, когда установлены оба units и variables (через 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 голосов
/ 06 июля 2018

Вы можете использовать оператор 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 лет".

...