Future.wait und parallele Arbeit
Mehrere Futures gleichzeitig ausführen
Future.wait und parallele Arbeit ist eine kostenlose Dart Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Dart Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.
Nacheinander auf Futures zu warten ist langsam
Wenn Sie nacheinander auf Futures warten, muss jeder auf den vorherigen warten. Drei Aufrufe mit jeweils einer Sekunde dauern dann insgesamt drei Sekunden.
Gemeinsam starten
Starten Sie unabhängige asynchrone Aufrufe zuerst und warten Sie anschließend auf sie. Sie laufen nebenläufig, sodass die Gesamtdauer der langsamsten Aufgabe entspricht und nicht der Summe aller Aufgaben.
Future.wait kennenlernen
Future.wait nimmt eine Liste von Futures entgegen und gibt ein Future zurück, das abgeschlossen wird, sobald alle Futures fertig sind.
final results = await Future.wait([a(), b(), c()]);Ergebnisse bleiben geordnet
Future.wait liefert Ihnen eine Liste von Ergebnissen in derselben Reihenfolge wie die Eingabe-Futures – unabhängig davon, welches zuerst fertig wurde.
final list = await Future.wait([one(), two()]);
print(list[0]); // result of one()Echte Zeitersparnis
Drei parallele Futures mit jeweils einer Sekunde sind nach ungefähr einer Sekunde gemeinsam fertig, weil Future.wait die Wartezeiten überlappt.
Wenn eines fehlschlägt
Standardmäßig wird Future.wait sofort mit dem Fehler abgeschlossen, wenn eines der Futures fehlschlägt – selbst wenn die anderen noch ausgeführt werden.
Mit eagerError weitermachen
Übergeben Sie eagerError: false, dann wartet Future.wait weiterhin auf jedes Future, bevor der zuerst aufgetretene Fehler gemeldet wird.
await Future.wait(tasks, eagerError: false);Mit Future.any um die Wette laufen
Sie benötigen nur das schnellste Ergebnis? Future.any wird abgeschlossen, sobald das erste Future in der Liste erfolgreich ist.
final fastest = await Future.any([mirrorA(), mirrorB()]);Die Liste erstellen
Ein häufig verwendetes Muster besteht darin, mit map über Ihre Eingaben zu iterieren, eine Liste von Futures zu erstellen und diese direkt an Future.wait zu übergeben.
await Future.wait(ids.map(fetchUser));Nebenläufig, nicht parallel in Threads
Das ist Nebenläufigkeit in einem Isolate: Die Ereignisschleife verschachtelt die Wartezeiten. Für rechenintensive Aufgaben würden Sie Isolates verwenden.
Wann Sie welches verwenden
Verwenden Sie Future.wait, wenn Sie alle Ergebnisse benötigen, und Future.any, wenn nur das zuerst eintreffende Ergebnis zählt. ⚖️
Schnelltest
Schnelltest zum gemeinsamen Ausführen von Futures.
Zusammenfassung: Parallele Futures
Sie haben gelernt, mit Future.wait asynchrone Arbeit für alle Ergebnisse zu überlappen, mit Future.any das schnellste Ergebnis zu erhalten und das Fehlerverhalten zu verstehen. 🏁
Häufig gestellte Fragen
Ist die Lektion „Future.wait und parallele Arbeit“ kostenlos?
Ja — der vollständige Text von „Future.wait und parallele Arbeit“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Dart Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Future.wait und parallele Arbeit“?
Mehrere Futures gleichzeitig ausführen Du übst Dart Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Dart Academy zu starten?
Keine Vorkenntnisse erforderlich. Dart Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Future.wait und parallele Arbeit“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Dart Academy-Lektion Code schreiben und ausführen?
Ja. Jede Dart Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Event Loop und Microtasks
- Futures erstellen und erwarten
- Fehlerbehandlung in async-Code
- Future.wait und parallele Arbeit