CodeBlanks Logo Icon CodeBlanks

async/await

async ve await ile asenkron kod öğrenirsin.

async ve await

async ve await zaman uyumsuz kodu senkron görünümle yazmanın yoludur. async bir fonksiyonu işaretler; await ise Future tamamlanana kadar bekler.

Bir fonksiyona async eklediğinde dönüş tipi Future olur. void main() async yazarak main'i async yaparsın. async fonksiyon içinde await kullanabilirsin.

Örnek: void main() async { print('Başladı'); await Future.value(); print('Bitti'); }. Çıktı: Başladı, Bitti. await satırda bekler, sonra devam eder.

Sıralı çıktı

async ve await birlikte kullanıldığında kod yukarıdan aşağıya okunur gibi çalışır. await satırında beklenir, sonra bir sonraki satıra geçilir. Bu, senkron kod gibi görünür ama asenkron çalışır.

Örnek: print('Başladı'); await Future.value(); print('Bitti');. Çıktı her zaman önce 'Başlandı' sonra 'Bitti' olur. await sıralamayı garanti eder.

Eğer await kullanmasaydın 'Bitti' hemen yazdırılabilirdi; sıralama belirsiz olurdu. await sıralamayı belirleyici yapar.

Uygulama Sıralı async çıktı

void main() async zaten yazılı. Önce print('Başladı') ile başla. await Future.value() ile bekle. Sonra print('Bitti') ile bitir.

Başlangıç kodu

main.dart
void main() async {
  // önce 'Başladı' yazdır, sonra Future bekle, en son 'Bitti' yazdır
}

Örnek çözüm

main.dart
void main() async {
  print('Başladı');
  await Future.value();
  print('Bitti');
}

Beklenen çıktı

Başladı
Bitti

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 await anahtar kelimesi ne yapar?

main.dart
var r = await f;
  • Future'i siler
  • Yeni bir Future üretir
  • Future tamamlanana kadar bekler Doğru cevap
  • Hata fırlatır

Açıklama: await Future tamamlanana kadar bekler ve sonuçu verir.

2 async main

Soru
void main() ____ {
  print('Başladı');
  await Future.value();
  print('Bitti');
}
Cevap
void main() async {
  print('Başladı');
  await Future.value();
  print('Bitti');
}

Açıklama: async anahtar kelimesi main'i zaman uyumsuz yapar.

3 async/await parçalarını eşleştir

Kavram Anlamı
async Fonksiyon işareti
await Bekleme
Future.value() Beklenen Future
print('Bitti') Beklemeden sonra

Orta seviye bölümündeki tüm dersler