// 1
void main() async {
print('A');
await Future(() {
print('B');
Future(() => print('C'));
Future.microtask(() => print('D'));
Future(() => print('E'));
print('F');
});
print('G');
}
上面代碼的執行順序是:
A->B->F->G->D->C->E
// 2
void main() {
print('A');
Future(() {
print('B');
Future(() => print('C'));
Future.microtask(() => print('D'));
Future(() => print('E'));
print('F');
});
print('G');
}
上面代碼的執行順序是:
A->G->B->F->D->C->E
main() {
print('A');
scheduleMicrotask(() => print('B'));
Future.delayed(Duration(seconds: 1), () => print('C'));
Future(() => print('D'));
Future(() => print('E'));
scheduleMicrotask(() => print('F'));
print('G');
}
上面代碼的執行順序是:
A->G->B->F->D->E->C
總結:
1、優先執行main()代碼
2、然後執行 Microtask Queue
3、最後執行Event Queue
Main > MicroTask > EventQueue。