Dart Async Await
Von Futures in Dart ist es nicht weit zu async und await. Mit diesen zwei Schlüsselwörtern stellt die Programmiersprache Dart, weitere Werkzeuge zur Verfügung, die asynchrones Programmieren ermöglichen. Wie wir im letzten Post gesehen haben, gibt uns Dart mit dem Objekttyp Future eine Möglichkeit in die Hand. async und await ergänzen die Palette. Schauen wir uns aber den Code nochmal an:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'dart:io'; | |
import 'dart:async'; | |
main(){ | |
File meinFile = File("meinText.txt"); | |
Future meinFileInhalt = meinFile.readAsString(); | |
meinFileInhalt.then((inhalt )=>print(inhalt)); | |
} |
async await
Diese beiden treten immer zusammen auf. await macht nur in einem asynchronem Zusammenhang Sinn. Eine Funktion die mit async gekennzeichnet ist, retourniert immer ein Future! Nehmen wir also den Code aus dem letzten Post und passen ihn mit async und await an:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'dart:async'; | |
Future<String> ladeZeichenkette(String meineZeichenkette) async { | |
await Future.delayed(Duration(seconds: 10)); | |
return "String: $meineZeichenkette"; | |
} | |
main(List<String> args) async{ | |
String zeichenKette = await ladeZeichenkette("Good Morning Vietnam"); | |
print(zeichenKette); | |
} |
Kommentare
Kommentar veröffentlichen