1
我在玩異步行爲時偶然發現了這種行爲。任何人都可以解釋這種行爲?
https://dartpad.dartlang.org/6cac2e240375b531630c9e47e3875b63
爲什麼0秒的setTimeout不立即執行print語句誰能給我解釋一下?
我在玩異步行爲時偶然發現了這種行爲。任何人都可以解釋這種行爲?
https://dartpad.dartlang.org/6cac2e240375b531630c9e47e3875b63
爲什麼0秒的setTimeout不立即執行print語句誰能給我解釋一下?
setTimeout
將傳遞的函數排入事件隊列,並且傳遞的代碼執行異步。 https://webdev.dartlang.org/articles/performance/event-loop
同步代碼執行到最後,然後處理事件隊列中的下一個事件。
有趣。我還注意到,當你使用Future.sync代替setTimeout時,這種行爲不會發生。 – Eternalcode
'Future's有一些不同的行爲。還有微任務隊列,在執行事件隊列中的下一個任務之前處理它。 「未來」具有更高的優先級AFAIR。 –
Re:'同步代碼被執行到最後'。 '結束'表示當前函數結束,或者調用'yield'(如果在同步*或異步*函數中),對嗎? –