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é...
No answers yet.
Connectez-vous pour laisser une réponse