flutter中代碼執行順序

// 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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章