Avatar ·

Kotlin : withContext() contre async-await — quelle est la différence et que choisir ?

Bonjour, collègues ! J'ai récemment commencé à apprendre les coroutines en Kotlin, et je suis confus entre `withContext()` et la construction `async-await`. À première vue, les deux permettent d'exécuter du code dans un autre contexte (par exemple, sur `Dispatchers.IO`) et d'obtenir un résultat. Mais je ne comprends pas quand utiliser quoi. Voici un exemple simple. Supposons que je doive charger des données depuis le réseau et les traiter : ```kotlin suspend fun loadUser(): User { return withContext(Dispatchers.IO) { // simulation d'une requête réseau delay(1000) User("Alexei") } } suspend fun loadUserAsync(): User { val deferred = GlobalScope.async(Dispatchers.IO) { delay(1000) User("Alexei") } return deferred.await() } ``` Les deux fonctions font la même chose — retournent un User après une seconde. Mais j'ai entendu dire que `async-await` est souvent utilisé pour des tâches parallèles, tandis que `withContext` sert à changer de dispatcher. Cependant, dans un simple appel séquentiel, je ne vois pas de différence. De plus, j'ai remarqué...