请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

请问老师eventloop

https://img1.sycdn.imooc.com/szimg/600a2a3b0837a4d610000463.jpg
请问一下老师,我在之前结合掘金小册一些文章,看到他们讲的是当一次执行完所有同步代码和所有微任务后才会渲染页面,而老师这里说执行完同步任务触发eventloop之前就会执行渲染,这是不是有冲突。请问老师渲染之前应该清空微任务吧

正在回答

2回答

不冲突,这是一个循环。渲染页面,你说在执行完微任务之后也可以,你说在下次 eventloop 开始之前也可以。它是一个循环的过程。

就类似于,你说 9 点在 8 点之后也可以,说 9 点在 10 点之前也可以。

0 回复 有任何疑惑可以回复我~
  • 提问者 hy_wang #1
    请问老师那也就是说 执行同步代码->清空所有微任务->渲染->执行下一个宏任务->service worker 是这样吗,也就是 执行同步代码->清空所有微任务就会渲染页面。
    回复 有任何疑惑可以回复我~ 2021-01-22 17:22:55
  • 双越 回复 提问者 hy_wang #2
    是的。
    回复 有任何疑惑可以回复我~ 2021-01-22 22:23:55
提问者 hy_wang 2021-01-22 17:27:55
setTimeout(() => {

const promise = Promise.resolve(1)
console.log('123')
promise.then(res => {
debugger
document.getElementById('app').innerHTML = res
debugger
})
}, 1000)

老师我验证了一下,两次debugger看出了时机~看来是微任务在页面渲染之前。谢谢老师~

0 回复 有任何疑惑可以回复我~
  • 双越 #1
    是的。
    回复 有任何疑惑可以回复我~ 2021-01-22 22:24:02
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信