Flutter -- ohne Dart geht es nicht Futures Async
Async - das unbekannte Wesen
Im letzten Post haben wir mit dem Thema Futures begonnen. Zeit weiter zu machen !
Parallel oder gleichzeitig ?
Wenn Dart ein Programm ausführt, geschieht das in einem Thread (Prozess). Der Code wird Zeile für Zeile abgearbeitet, bis das Programm endet. Wenn wir in unserem Code asynchrone Funktionen benutzen, wird dieser innerhalb dieses einten Prozesses ausgeführt. D.h. unser Code wird unterteilt und im Wechsel ausgeführt. Das Resultat ist praktisch eine gleichzeitige Abarbeitung von synchronem und asynchronem Code. Eine parallele Abarbeitung wäre eine gleichzeitige, aber unabhängige Abarbeitung des Codes. Das ganze Thema geht tiefer und steht im Zusammenhang mit Microtasks, Isolates und dem Event Queue. Ich gehe hier nicht weiter darauf ein. Das würde den Rahmen dieses Posts sprengen.
Ein einfacher Start
Beginnen wir mit ein paar Zeilen Code:
Wenn wir den Code anschauen, sehen wir, das die Verzögerungsschleife in eine await Funktion gepackt wurde. Aber auch folgendes Codekonstrukt ist zulässig:
var Ergebnis = await meineBerechnungsFunktion()
Eine Standart Konstruktion ist also:
Future<void> meine Funktion() async {...
var meineVariable = await aufDiesesErgebnisWartenFunktion();
...}
Dabei ist wichtig zu wissen, das bis das Schlüsselwort await erscheint, der Code synchron verarbeitet wird. Wenn wir zum Beispiel vor await noch eine Printausgabe (Test) einfügen, sieht das Ergebnis so aus:
Kommentare
Kommentar veröffentlichen