Dart Asynchronous Programming

Dart has first-class support for Futures, Streams, and async/await.

Dart
Future<String> fetchUser() async {
  await Future.delayed(Duration(seconds: 2));
  return 'Sita';
}

void main() async {
  String name = await fetchUser();
  print(name);  // 'Sita'
}

Streams

Dart
Stream<int> countStream() async* {
  for (int i = 1; i <= 5; i++) {
    await Future.delayed(Duration(seconds: 1));
    yield i;
  }
}
countStream().listen((number) => print(number));

Parallel Execution

Dart
var results = await Future.wait([fetchUsers(), fetchPosts()]);

🎉 You have completed the Dart course!