一、使用zip将两个请求并发执行并将结果统一返回


例子1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import io.reactivex.Observable
import io.reactivex.functions.BiFunction

fun testZip1(){

val observ1 = Observable.fromArray(arrayOf(1, 2, 3))
val observ2 = Observable.fromArray(arrayOf(4, 5, 6, 7))
Observable.zip(observ1, observ2, BiFunction<Array<Int>, Array<Int>, Any>{ p0, p1 ->

}).subscribe{ it->
println(it)
}

}
//observ1, observ2 类型是: Observable<Array<Int>>。 it类型是:Any

例子2

1
2
3
4
5
6
7
8
9
10
11
fun testZip2(){

val numbers = Observable.range(1, 6)
val strings = Observable.just("One", "Two", "Three", "Four", "Five", "Six" )
Observable.zip(strings, numbers, BiFunction<String,Int,Any>{
i1,i2->{}
}).subscribe{ it->{}

}
}
// numbers类型是: Observable<Int>, strings类型是: Observable<String>, it类型是Any