kotlin协程如何合并两个异步任务


#1

协程如何合并两个异步任务呢?
比如
launch(Main){
val a = async {}
val b = async { }
val c = suspendingMerge(a,b)
setData©
}
我想等两个任务完成这里该怎么做,没有没有类似rxJava的合并操作?


#2

分别调用这两个任务的 await 方法就可以,假设你的合并是希望把这两个任务的结果相加的话,可以这样:

val a = async { 1 }
val b = async { 2 }
val c = a.await() + b.await()

#3

RxJava 合并也就是同时请求,在协程里已经是并发请求了,何必在多一步操作。


#4

也是,看来还是对kotlin的协程理解不够,老是用java的异步处理思维来理解协程


#5

哈哈哈,这个场景用协程真的很合适~


京ICP备16022265号-2 Kotlin China 2017 - 2018
本站由腾讯云提供计算服务