CodeBlanks Logo Icon CodeBlanks

Özet - Async

async/await, Future.wait ve Completer'ı birleştirerek bir paralel indirici yazarsın.

Özet - Async

Bu grupta zaman uyumsuz programlamanın temellerini öğrendik: Future zaman uyumsuz sonuçu temsil eder; async/await kodu senkron gibi yazar; .then/.catchError zincir kurar; Future.wait paralel çalıştırır; Completer elle tamamlama sağlar.

Bu araçlar birlikte Dart'ta asenkron kodun temelini oluşturur. Ağ isteği, dosya okuma, zamanlayıcı gibi işlemlerde kullanılırlar. Ana iş parçacığını bloklamadan uzun işleri yönetirler.

Şimdi iki aracı bir arada kullanan bir alıştırma yapalım: iki Future'i Future.wait ile paralel çalıştır ve toplamlarını yazdır.

Uygulama Paralel Future'lerin toplamı

void main() async zaten yazılı. İki Future.value (1 ve 2) oluştur. Future.wait ile paralel çalıştır ve await ile bekle. Sonuç listesinin iki elemanının toplamını print ile yazdır; örneğin print('Toplam: ${results[0] + results[1]}').

Başlangıç kodu

main.dart
void main() async {
  // iki Future.value oluştur, Future.wait ile birleştir, sonuçu yazdır
}

Örnek çözüm

main.dart
void main() async {
  var f1 = Future.value(1);
  var f2 = Future.value(2);
  var results = await Future.wait([f1, f2]);
  print('Toplam: ${results[0] + results[1]}');
}

Beklenen çıktı

Toplam: 3

Soru ve cevaplar

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

1 Async kavramlarını eşleştir

Kavram Anlamı
Future Zaman uyumsuz sonuç
await Bekleme
Future.wait Paralel bekleme
Completer Elle tamamlama

2 Birden çok Future'i paralel çalıştırmak için ne kullanılır?

  • Completer
  • then
  • Future.wait Doğru cevap
  • await

Açıklama: Future.wait birden çok Future'i paralel çalıştırır.

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