Polymers this.async,Promise.then和setTimeout函数之间的区别是什么?
我的理解:
this.async和Promise.then将Task移动到当前Stack的末尾,setTimeout作为new Task处理,并在eventloop从队列中获取新任务时在下一个循环中执行?
如果我错了,请纠正我。
答案 0 :(得分:3)
TLDR:是的,但如果指定了超时,请注意this.async
uses setTimeout
。
Polymer.Async.run
(this.async
)没有超时 - 排队微任务(通过MutationObserver
回调)Polymer.Async.run
(this.async
)超时 - 排队宏任务Promise.then
- 排队微任务setTimeout
- 排队macrotask Difference between microtask and macrotask within an event loop context