-
vue.js内部是先去用Promise.then、MutationObserver这二个微任务的api来实现如果发现浏览器不支持,换成用宏任务setTimeout来实现的(优雅降级)
-
Promise.then > MutationObserver > setTimeout 尽可能快的知道什么时候dom更新了
-
思路
- 把回调函数放入callbacks等待执行
- 将执行函数放到微任务或者宏任务中(优雅降级)
- 事件循环到了微任务或者宏任务,执行函数依次执行callbacks中的回调
核心要回答的:Promise.then > MutationObserver > setTimeout (优雅降级)