Как создать свою реализацию suspend функции

«Как создать свою реализацию suspend функции» — вопрос из категории Coroutines и Flow, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для создания своей suspend-функции используйте модификатор suspend и вызывайте внутри другие suspend-функции или используйте withContext для переключения контекста.

suspend fun fetchData(): String {
    return withContext(Dispatchers.IO) {
        // Имитация долгой операции
        delay(1000)
        "Data loaded"
    }
}

Ключевые моменты:

  1. suspend функции могут быть вызваны только из корутин или других suspend функций.
  2. Используйте withContext для безопасного переключения потоков.
  3. Не блокируйте поток в suspend-функции (используйте delay вместо Thread.sleep).