使用Coroutines Kotlin创建顺序请求

时间:2019-08-28 12:05:11

标签: android kotlin-coroutines

我是协程新手,并且遇到以下问题。

我有一个文件,该文件被分成几部分并转换为mMessage对象,因此我有一个List。

我要按顺序向服务器发送带有Volley请求的每个项目。我想发送1号,onSuccess发送2号,onSuccess发送3号,等等。如果失败了,我必须再次发送以继续。

我的问题是,有没有办法用Kotlin Coroutines做到这一点,是否有任何特定的功能可以创建顺序作业或其他功能??

谢谢

1 个答案:

答案 0 :(得分:0)

默认情况下,所有挂起函数均按顺序运行,而不会阻塞主线程。 您可以像下面这样编写代码,并以此为基础并添加异常处理

suspend fun send(mMessage: Message) { // send to server }

val msgs = listOf<Messages>(...)

// send msgs one by one in asynchronous fashion
suspend fun sendAll() {
  for(msg in msgs) {
    send(msg)
  }
}