2017-06-27 44 views
0

我一直在閱讀Kotlin協程,但沒有找到具體問題的答案。如何:在Kotlin中觸發並忘記異步協程

假設我想迭代一個集合,爲每個元素(在這種特殊情況下將文件推送到Amazon S3)進行API調用。我希望這些調用由異步協程來處理,以免在等待時阻塞底層線程。

我不需要來自請求的返回值,僅用於記錄異常。

我該如何創建一個「fire and forget」異步協程來完成這些請求之一?

回答

1

也許kotlinx.coroutines#launchkotlinx.coroutines#async可以滿足您的需求。爲例子:

launch(CommonPool) { 
    for(item in collection){ 
     val result = apiCall(item); 
     log(result); 
    } 
} 

OR

for(item in collection){ 
    launch(CommonPool) { 
     val result = apiCall(item) 
     log(result) 
    } 
}