是否可以仅使用一个协程异步下载多个内容?例如,我有一个URL数组,但是我只能从协程内部获取此数组。有了数组后,我想下载数组中每个URL的内容,但是所有这些都是异步完成的:
withContext(appDispatchers.IO) {
val Urls = getUrlsFromBackend()
// Download the content for each url asynchronously
}
答案 0 :(得分:0)
您可以创建子协程。每个协程都是并发单位,因此您为每个url创建一个。
withContext(appDispatchers.IO) {
val Urls = getUrlsFromBackend()
// Download the content for each url asynchronously
val contents = Urls.map{ async { dowloadContent(it) } }.awaitAll()
// Use contents
}