0Pricing
Dart Academy · Lektion

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

  1. Event Loop und Microtasks
  2. Futures erstellen und erwarten
  3. Fehlerbehandlung in async-Code
  4. Future.wait und parallele Arbeit
← Zurück zu Dart Academy