Android Coroutines неправильный порядок результатовAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android Coroutines неправильный порядок результатов

Сообщение Anonymous »

Я новичок в разработке Kotlin и Coroutines.
Я хочу получить список значений из rest API в правильном порядке. Цикл для этого метода fetchApiResponse() вызывается в цикле от 1 до 10, и именно так должно работать это свойство id — от 1 до 10. Но теперь результат имеет случайный порядок. Вот мой код:

Код: Выделить всё

object RestModel : MVPContract.Model {

private val apiClient = APIClient.getInstance()
private var job: Job? = null
private var id = 0;

override fun fetchApiResponse(presenter: MVPContract.Presenter) {
job = CoroutineScope(Dispatchers.IO).launch {
id++
val response = apiClient.getCharacterById(id)
withContext(Dispatchers.Main) {
try {
val apiResponse = presenter.processRawJson(response.body()!!)
presenter.passResponseToView(apiResponse)
}
catch (ex: Exception) {
presenter.passErrorResponseMessageToView(ex.message.toString())
}
}
}
}

fun cancelJob() {
job?.cancel()
}
}
Я пытался изменить позицию id++ в этом методе, но результат либо приходит в случайном порядке (как я уже говорил), либо дает только первый результат десять раз.
Я пытался изменить позицию id++ в этом методе, но либо результат приходит в случайном порядке (как я уже говорил), либо дает только первый результат десять раз.
п>

Подробнее здесь: https://stackoverflow.com/questions/785 ... sult-order
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»