在Kotlin协程中,你可以使用async函数来合并多个任务。async函数用于异步计算一个值,并返回一个Deferred对象,可以通过调用await函数来获取计算结果。

你可以将多个async函数放在一个List中,并使用awaitAll函数来并发执行这些任务,并等待所有任务完成。

下面是一个示例代码:

import kotlinx.coroutines.*

fun main() = runBlocking {
    val task1 = async { fetchUserData() }
    val task2 = async { fetchProductData() }
    val task3 = async { fetchOrderData() }

    val result = awaitAll(task1, task2, task3)
    println(result)
}

suspend fun fetchUserData(): String {
    delay(1000)
    return "User data"
}

suspend fun fetchProductData(): String {
    delay(2000)
    return "Product data"
}

suspend fun fetchOrderData(): String {
    delay(1500)
    return "Order data"
}

在上述代码中,fetchUserDatafetchProductDatafetchOrderData函数模拟了三个耗时的任务。main函数中使用async函数分别创建了这三个任务,并将它们放在一个List中。然后,使用awaitAll函数来并发执行这些任务,并等待它们全部完成。最后,打印所有任务的结果。

运行上述代码,你将会看到类似以下输出:

[User data, Product data, Order data]

这表明三个任务都已完成,并且它们的结果被合并到一个List

kotlin 协程如何做多任务合并

原文地址: https://www.cveoy.top/t/topic/iQz1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录