Ситуация: асинхронный код ведет себя нестабильно при использовании «async и await». Как вы будете разбираться?

Android / KotlinMiddleCoroutines и FlowСитуацияandroid kotlin developer|coroutines и flow|coroutines|async и await

Что хотят услышать интервьюеры:

План действий: сначала воспроизвести проблему, затем сузить область и только после этого менять код.

  • Проверить, где используется async и await.
  • Посмотреть lifecycle, потоки, state source, логи и stack trace.
  • Сравнить ожидаемое поведение с фактическим.
  • Закрепить исправление тестом, профилированием или checklist-проверкой.

Ответ:

Вероятная зона риска: запускает coroutine с Deferred-результатом и подходит для параллельных независимых задач. Плохой ответ: сразу переписать экран без диагностики.

val a = async { repo.a() }; val b = async { repo.b() }

Источники

Похожие вопросы