CodeBlanks Logo Icon CodeBlanks

Future.wait

Future.wait ile paralel Future'ları öğrenirsin.

Future.wait

Future.wait birden çok Future'i paralel çalıştırır ve hepsinin tamamlanmasını bekler. Sonuç, Future'lerin sonuçlarını içeren bir listedir.

Örnek: var results = await Future.wait([Future.value('A'), Future.value('B'), Future.value('C')]);. Üç Future paralel başlar; await hepsini bekler. results bir List'tir: ['A', 'B', 'C'].

Bu metot, bağımsız işlemleri hızlandırmak için kullanılır. Üç ağ isteği ayrı ayrı 1'er saniye sürüyorsa, paralel çalıştırınca toplam 1 saniye sürer.

Paralel çalışma

Future.wait listedeki tüm Future'leri aynı anda başlatır. Her biri ayrı ayrı tamamlanır; Future.wait hepsi bitene kadar bekler. Sonuç listesi Future'lerin sırasına göre düzenlenir.

Örnek: üç Future sırayla 3, 1, 2 saniye sürsün. Future.wait ile hepsi paralel başlar; toplam süre en uzunu kadar yani 3 saniye olur. Sıralı olsaydı 6 saniye sürerdi.

Sonuç listesinde her Future'in sonuçu kendi indeksinde durar. results[0] ilk Future'in sonuçunu verir.

Uygulama Üç Future'i paralel bekle

void main() async zaten yazılı. Future.wait ile üç Future.value ('A', 'B', 'C') parametre olarak geç. await ile bekle ve sonuçu print ile yazdır.

Başlangıç kodu

main.dart
void main() async {
  // Future.wait ile üç Future paralel çalıştır
  // sonuçu bekle ve yazdır
}

Örnek çözüm

main.dart
void main() async {
  var results = await Future.wait([
    Future.value('A'),
    Future.value('B'),
    Future.value('C'),
  ]);
  print(results);
}

Beklenen çıktı

[A, B, C]

Soru ve cevaplar

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

1 Future.wait ne döndürür?

main.dart
var r = await Future.wait([
  Future.value('A'),
  Future.value('B'),
]);
  • Sonuç listesi Doğru cevap
  • void
  • Hata fırlatır
  • Tek bir değer

Açıklama: Future.wait her Future'in sonuçunu içeren bir liste döndürür.

2 Future.wait çağrısı

Soru
var results = await ____([Future.value('A'), Future.value('B'), Future.value('C')]);
Cevap
var results = await Future.wait([Future.value('A'), Future.value('B'), Future.value('C')]);

Açıklama: Future.wait paralel Future'leri bekler.

3 Future.wait parçalarını eşleştir

Kavram Anlamı
Future.wait([...]) Paralel bekleme
await Tamamlanmayı bekle
results Sonuç listesi
results[0] İlk sonuç

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