Kotlin: withContext() बनाम async-await — क्या अंतर है और क्या चुनें?
नमस्ते साथियों! मैंने हाल ही में Kotlin में कोरूटीन सीखना शुरू किया है, और मुझे `withContext()` और `async-await` कंस्ट्रक्शन के बीच भ्रम हो गया है। पहली नज़र में, दोनों कोड को दूसरे कॉन्टेक्स्ट (जैसे `Dispatchers.IO` पर) में execute करने और परिणाम प्राप्त करने की अनुमति देते हैं। लेकिन मुझे समझ नहीं आ रहा कि कब क्या उपयोग करना चाहिए।
यहाँ एक सरल उदाहरण है। मान लीजिए, मुझे नेटवर्क से डेटा लोड करना है और उसे process करना है:
```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()
}
```
दोनों functions एक ही काम करते हैं — User लौटाते हैं।