Skip to content

Instantly share code, notes, and snippets.

@tranductam2802
Last active January 8, 2020 03:13
Show Gist options
  • Save tranductam2802/6932e97422af3268569d9e6c002b263e to your computer and use it in GitHub Desktop.
Save tranductam2802/6932e97422af3268569d9e6c002b263e to your computer and use it in GitHub Desktop.
Demo for understanding dart async.
import 'dart:async';
main() {
Future(() => print('Line 1'));
scheduleMicrotask(() => print('Line 2'));
print('Line 3');
print('Line 4');
Future(() {
Future(() => print('Line 5'));
scheduleMicrotask(() => print('Line 6'));
print('Line 7');
});
print('Line 8');
scheduleMicrotask(() {
print('Line 9');
Future(() => print('Line 10'));
scheduleMicrotask(() => print('Line 11'));
});
print('Line 12');
dummy1();
print('Line 14');
Future(() => print('Line 15'));
scheduleMicrotask(() => print('Line 16'));
dummy2();
print('Line 17');
}
void dummy1() {
print('Line dummy1 1');
Future(() => print('Line dummy1 2'));
scheduleMicrotask(() => print('Line dummy1 3'));
print('Line dummy1 4');
scheduleMicrotask(() => print('Line dummy1 5'));
Future(() => print('Line dummy1 6'));
}
void dummy2() {
print('Line dummy2 1');
Future(() => print('Line dummy2 2'));
scheduleMicrotask(() => print('Line dummy2 3'));
print('Line dummy2 4');
scheduleMicrotask(() => print('Line dummy2 5'));
Future(() => print('Line dummy2 6'));
}
@tranductam2802
Copy link
Author

View result online from:

https://dartpad.dev/6932e97422af3268569d9e6c002b263e

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment