CodeBlanks Logo Icon CodeBlanks

async/await

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

main.dart
void main() {
  // async olarak işaretle
  // Future değerini bekle ve yazdır
}

Örnek çözüm

main.dart
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ı

Soru
Future<void> main() ____ {
  final v = await Future.value(42);
  print(v);
}
Cevap
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?

main.dart
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ü

Başlangıç bölümündeki tüm dersler