async/await
- Dart kursu
- Başlangıç
- Ders 107/116
- 5 dk
async ve await ile asenkron kod öğrenirsin.
async/await
async ve await ile asenkron kodu senkronmuş gibi yazarsın. Bir işlevi async olarak işaretlersin; bu da işlevin bir Future döndürdüğü anlamına gelir. İçinde await ile bir Future'ın tamamlanmasını beklersin; sonuç doğrudan değişkene gider.
Örnek: Future<void> main() async { final v = await Future.value(42); print(v); }. Burada await Future'ın tamamlanmasını bekler, sonra v 42 olur. .then zincirine göre çok daha okunurdur. async işlev içinde try/catch ile hata da yakalanır; .catchError'a gerek kalmaz.
await kullanımı
await yalnızca async bir işlevin içinde kullanılabilir. Bir Future'ın tamamlanmasını bekler ve sonuçunu döndürür. final v = await Future.value(42); ile v hemen 42 olur. await sırasında işlev donmaz; çağıran return eder, başka işler yapılır.
Birden çok Future'ı sırayla beklemek istersen her birini ayrı await ile alırsın. Hata durumunda try { await f(); } catch (e) { ... } kullanırsın; Future hata ile biterse catch çalışır. async işlev kendisi de bir Future döndürdüğü için, çağıran da await ile bekleyebilir. Bu, zincirleme asenkron çağrıları düz yazı gibi okumanı sağlar.
Uygulama Sıra sende: async main
main'i async olarak işaretle. final v = await Future.value(7); ile değeri bekle ve print(v) ile yazdır. Böylece await ile Future sonuçunu doğrudan alırsın.
Başlangıç kodu
void main() {
// async olarak işaretle
// Future değerini bekle ve yazdır
}Örnek çözüm
Future<void> main() async {
final v = await Future.value(7);
print(v);
}Beklenen çıktı
7
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 async anahtarı
Future<void> main() ____ {
final v = await Future.value(42);
print(v);
}
Future<void> main() async {
final v = await Future.value(42);
print(v);
}
Açıklama: async işlev asenkron kodu taşır.
2 await hangi işlevin içinde kullanılabilir?
Future<void> main() async {
final v = ____ Future.value(42);
}- async
- static
- main
- sync Doğru cevap
Açıklama: await yalnızca async işlevde kullanılır.
3 async/await eşleştir
| Kavram | Anlamı |
|---|---|
async |
işlevi işaretler |
await |
Future'ı bekler |
try/catch |
hata yakalar |
Future<void> |
async main dönüş türü |