JavaScript 运行时中的微任务和宏任务
Micro and macro tasks in JavaScript runtime
There are micro- and macro- task queues in the JavaScript runtime.
setTimeout
使用宏任务队列。
setImmediate
in IE11 大概用到了微任务队列吧?
process.nextTick
使用微任务队列。
但是 setImmediate
没有在任何其他浏览器中实现(并且不会是 AFAIK)。
并且 process.nextTick
仅是节点。
Promises 使用微任务队列。 Promise
因此可以在非 IE 浏览器中提供类似 setImmediate
的功能吗?
三年后,当然,但我们现在确实有了答案:window.queueMicrotask()
method has been added to allow adding a callback to the JavaScript runtime's microtask queue. I'm currently working on fleshing out a microtask guide on MDN Web Docs。
There are micro- and macro- task queues in the JavaScript runtime.
setTimeout
使用宏任务队列。
setImmediate
in IE11 大概用到了微任务队列吧?
process.nextTick
使用微任务队列。
但是 setImmediate
没有在任何其他浏览器中实现(并且不会是 AFAIK)。
并且 process.nextTick
仅是节点。
Promises 使用微任务队列。 Promise
因此可以在非 IE 浏览器中提供类似 setImmediate
的功能吗?
三年后,当然,但我们现在确实有了答案:window.queueMicrotask()
method has been added to allow adding a callback to the JavaScript runtime's microtask queue. I'm currently working on fleshing out a microtask guide on MDN Web Docs。