async/await
- Dart kursu
- Orta seviye
- Ders 59/116
- 5 dk
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
void main() async {
// önce 'Başladı' yazdır, sonra Future bekle, en son 'Bitti' yazdır
}Örnek çözüm
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?
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
void main() ____ {
print('Başladı');
await Future.value();
print('Bitti');
}
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 |