怎么用qq邮箱做网站无经验能做sem专员
web/
2025/10/8 21:13:47/
文章来源:
怎么用qq邮箱做网站,无经验能做sem专员,wordpress主题 有分页,网站制作网页版主线程 任务1#xff0c;任务2 微队列微队列任务1#xff0c; 微队列任务2延时队列延时队列任务1#xff0c; 延时队列任务2交互队列....
事件循环的工作原理 主线程执行同步任务#xff1a; 主线程首先执行所有同步任务#xff08;即栈中的任务#xff09;。这些任务会…
主线程 任务1任务2 微队列微队列任务1 微队列任务2延时队列延时队列任务1 延时队列任务2交互队列....
事件循环的工作原理 主线程执行同步任务 主线程首先执行所有同步任务即栈中的任务。这些任务会按顺序执行直到没有更多同步任务为止。 遇到微任务或宏任务 在执行同步任务时如果遇到异步任务例如 Promise、setTimeout 等这些异步任务会被添加到相应的队列中。具体来说 微任务Microtask如 Promise.then()、MutationObserver 等会被加入到微任务队列中。宏任务Macrotask如 setTimeout、setInterval、I/O 操作等会被加入到宏任务队列中。 执行微任务队列 当主线程的同步任务执行完毕后微任务队列会被立即执行直到微任务队列为空。微任务的优先级高于宏任务所以它们会在每个事件循环中尽可能多地执行。如果微任务中又生成了新的微任务这些新的微任务会在当前事件循环中继续执行直到微任务队列清空。 执行宏任务队列延时队列和交互队列 当微任务队列为空时主线程会从宏任务队列中取出任务执行。宏任务队列中的任务是按照加入的顺序依次执行的。 延时队列由 setTimeout、setInterval 等产生的任务。交互队列用户交互事件如 click、scroll 等会被放入交互队列。在执行宏任务时如果遇到新的微任务它们会被添加到微任务队列中待下一轮微任务执行时处理。 重复事件循环 事件循环会不断重复先执行主线程中的同步任务然后处理微任务队列接着处理宏任务队列。每次事件循环都会清空微任务队列后才会执行宏任务。 事件循环的顺序总结
执行主线程中的同步任务。执行微任务队列中的任务微任务优先级高于宏任务。执行宏任务队列中的任务按照加入顺序。 在宏任务执行过程中如果遇到新的微任务它们会被添加到微任务队列中等微任务队列为空时再执行。继续下一轮事件循环重复上述过程。
练习
console.log(1)setTimeout(() {console.log(2)
}, 0)const promise new Promise((resolve, reject) {console.log(3)setTimeout(() {new Promise((resolve, reject) {resolve(success)console.log(8)}).then(data {console.log(10)})console.log(4)}, 0)resolve(success)
})setTimeout(() {console.log(5)
}, 0)console.log(6)promise.then(data {console.log(7)
})console.log(9)
答案
1
3
6
9
7
2
8
4
10
5
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/89264.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!