采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
请问一下老师,我在之前结合掘金小册一些文章,看到他们讲的是当一次执行完所有同步代码和所有微任务后才会渲染页面,而老师这里说执行完同步任务触发eventloop之前就会执行渲染,这是不是有冲突。请问老师渲染之前应该清空微任务吧
不冲突,这是一个循环。渲染页面,你说在执行完微任务之后也可以,你说在下次 eventloop 开始之前也可以。它是一个循环的过程。
就类似于,你说 9 点在 8 点之后也可以,说 9 点在 10 点之前也可以。
请问老师那也就是说 执行同步代码->清空所有微任务->渲染->执行下一个宏任务->service worker 是这样吗,也就是 执行同步代码->清空所有微任务就会渲染页面。
是的。
setTimeout(() => { const promise = Promise.resolve(1) console.log('123') promise.then(res => { debugger document.getElementById('app').innerHTML = res debugger }) }, 1000)
老师我验证了一下,两次debugger看出了时机~看来是微任务在页面渲染之前。谢谢老师~
登录后可查看更多问答,登录/注册
从入门到实战,一站式掌握 Node.js+Express+Koa2
2.4k 16
1.4k 16
1.6k 15
1.4k 13