2016-08-02 73 views

回答

2

setTimeout将传递的函数排入事件队列,并且传递的代码执行异步。 https://webdev.dartlang.org/articles/performance/event-loop

同步代码执行到最后,然后处理事件队列中的下一个事件。

+0

有趣。我还注意到,当你使用Future.sync代替setTimeout时,这种行为不会发生。 – Eternalcode

+1

'Future's有一些不同的行为。还有微任务队列,在执行事件队列中的下一个任务之前处理它。 “未来”具有更高的优先级AFAIR。 –

+0

Re:'同步代码被执行到最后'。 '结束'表示当前函数结束,或者调用'yield'(如果在同步*或异步*函数中),对吗? –

相关问题