Future.wait
- Dart kursu
- Orta seviye
- Ders 61/116
- 5 dk
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
void main() async {
// Future.wait ile üç Future paralel çalıştır
// sonuçu bekle ve yazdır
}Örnek çözüm
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?
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ı
var results = await ____([Future.value('A'), Future.value('B'), Future.value('C')]);
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ç |