1. 程式人生 > 實用技巧 >flutter - Future,microtask事件佇列順序

flutter - Future,microtask事件佇列順序

題目?

在這裡插入圖片描述

dart執行緒優先順序

dart 中的程式碼執行優先順序可以分為三個級別:

  1. 在 Main 中寫程式碼將最先執行;
  2. 執行完 Main 中的程式碼,然後會檢查並執行 Microtask Queue 中的任務,
    通常使用 scheduleMicrotask 將事件新增到 MicroTask Queue 中;
  3. 最後執行 EventQueue 佇列中的程式碼,通常使用 Future 向 EventQueue加入時間,也可以使用 async 和 await 向 EventQueue 加入事件。

總結:Dart 中事件的執行順序:Main > MicroTask > EventQueue。

dart中執行非同步操作

dart中執行非同步操作通過Future,多個 Future 的執行順序.

  • 規則一:Future 的執行順序為Future的在 EventQueue 的排列順序,先進先執行。
  • 規則二:當任務需要延遲執行時,可以使用 new Future.delay() 來將任務延遲執行。
  • 規則三: Future 如果執行完才新增 than ,該任務會被放入 microTask,當前 Future 執行完會執行 microTask,microTask 為空後才會執行下一個Future。
  • 規則四:Future 是鏈式呼叫,意味著Future 的 then 未執行完,下一個then 不會執行。

答案

在這裡插入圖片描述