Asynchronous 这是异步vs承诺,然后vs设置超时

Asynchronous 这是异步vs承诺,然后vs设置超时,asynchronous,polymer,settimeout,es6-promise,event-loop,Asynchronous,Polymer,Settimeout,Es6 Promise,Event Loop,this.async、Promise.then和setTimeout函数之间有什么区别 我的理解是: this.async和Promise.then将任务移动到当前堆栈的末尾,并且当eventloop从队列中获取新任务时,setTimeout作为新任务处理并在下一个循环中执行 如果我错了,请纠正我。TLDR:是,但请注意,如果指定了超时,则为异步 Polymer.Async.run(this.Async)无超时-将微任务排队(通过MutationObserver回调) Polymer.Asy

this.async、Promise.then和setTimeout函数之间有什么区别

我的理解是:

this.async和Promise.then将任务移动到当前堆栈的末尾,并且当eventloop从队列中获取新任务时,setTimeout作为新任务处理并在下一个循环中执行


如果我错了,请纠正我。

TLDR:是,但请注意,如果指定了超时,则为异步


  • Polymer.Async.run
    this.Async
    )无超时-将微任务排队(通过
    MutationObserver
    回调)
  • Polymer.Async.run
    this.Async
    )超时-对宏任务排队
  • 承诺。然后
    -将微任务排队
  • setTimeout
    -对宏任务进行排队

或者阅读此文件可能会有所帮助。异步将微任务和承诺排队。然后创建微任务?-queues和creates之间有区别吗?从Polymer 2开始,事物的命名(即名称空间)更明确一些:--您可以通过
Polymer.Async.[namespace]。运行
,您需要哪个功能。@simplesystems在该上下文中,queue和create之间没有区别。