Dart ist für Oberflächen gebaut, die nie einfrieren dürfen. Ein Future ist ein Ergebnis, das später eintrifft. Mit async und await schreibst du asynchronen Code wie normalen. Ein Stream liefert mehrere Werte über die Zeit. Fehler fängst du mit try/catch.
In Flutter lädst du so Daten aus dem Netz, ohne die Oberfläche zu blockieren.
Future<String> lade() async {
await Future.delayed(Duration(seconds: 1));
return 'Daten';
}
Stream<int> zaehler() async* {
for (var i = 1; i <= 3; i++) {
await Future.delayed(Duration(milliseconds: 200));
yield i;
}
}
void main() async {
print(await lade());
await for (final z in zaehler()) {
print(z);
}
try {
int.parse('abc');
} on FormatException {
print('Keine Zahl');
}
}Merke
Futureliefert ein späteres Ergebnisasync/awaitfür lesbaren asynchronen CodeStreamliefert mehrere Werte
Aufgabe
Simuliere ein Laden mit `Future.delayed` und gib danach das Ergebnis aus.