Avatar ·

Kotlin: withContext() против async-await — в чем разница и что выбрать?

```html Привет, коллеги! Я недавно начал осваивать корутины в Kotlin, и у меня возникла путаница между `withContext()` и конструкцией `async-await`. На первый взгляд, оба позволяют выполнять код в другом контексте (например, на `Dispatchers.IO`) и получать результат. Но я не понимаю, когда что применять. Вот простой пример. Допустим, мне нужно загрузить данные из сети и обработать их: ```kotlin suspend fun loadUser(): User { return withContext(Dispatchers.IO) { // имитация сетевого запроса delay(1000) User("Алексей") } } suspend fun loadUserAsync(): User { val deferred = GlobalScope.async(Dispatchers.IO) { delay(1000) User("Алексей") } return deferred.await() } ``` Обе функции делают одно и то же — возвращают User через секунду. Но я слышал, что `async-await` часто используют для параллельных задач, а `withContext` — для смены диспетчера. Однако в простом последовательном вызове разницы не вижу. Еще я заметил, что если я использую ```