2019.12.5 js事件循环机制,宏队列为队列

setImmediate
https://developer.mozilla.org/zh-CN/docs/Web/API/Window/setImmediate
window.setImmediate 是非标准的不讨论

nodejs 中:
setImmediate把事件放在了下一个队列的队首,nextTick把事件放在了当前队列的的队尾,大部分情况下,使用setImmediate(),它是优化的版本.
参考:https://blog.csdn.net/qq_41153478/article/details/81537124

细说setTimeout/setImmediate/process.nextTick的区别
https://blog.csdn.net/hkh_1012/article/details/53453138

JS魔法堂:初探传说中的setImmediate函数
https://blog.csdn.net/weixin_30532837/article/details/96098363

Vue.nextTick实现原理
https://segmentfault.com/a/1190000019770773

MutationObserver
https://developer.mozilla.org/zh-CN/docs/Web/API/MutationObserver

Object.observe
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/observe

window.postMessage:https://developer.mozilla.org/zh-CN/docs/Web/API/Window/postMessage

WebAssembly
PWA

任务队列分为macro-task(宏任务)和micro-task(微任务)

js event loop
js 事件循环,
一次事件循环会先执行完微队列里的所有任务; 再取一个宏队列任务放入执行栈,
执行栈内的任务执行完后,会进入下一次事件循环。

用 Reduce 实现 Promise 串行执行