社区
JavaScript
帖子详情
急需大神求帮 js 事件轮询问题
笨猿
2021-09-02 10:49:31
此处无码,就想请教大神们,怎么 先执行 setTimeOut 后 再 执行 Promise
...全文
237
3
打赏
收藏
急需大神求帮 js 事件轮询问题
此处无码,就想请教大神们,怎么 先执行 setTimeOut 后 再 执行 Promise
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
魔主无双
2021-09-18
打赏
举报
回复
当事件执行时 浏览器会把事件分为 同步 或者 异步 来执行 先执行 同步任务 当同步任务执行完毕后在执行异步任务 但异步任务 有分为 宏任务 与微任务 浏览器会优先执行宏任务 将微任务放置与后面 当宏微任务执行完毕后 它会再一次去 同步任务里查找未执行的同步任务 以此循环
纸飞机
2021-09-02
打赏
举报
回复
回调函数
笨猿
2021-09-03
举报
回复
@纸飞机
好吧 3Q
JS
事件
轮询
机制
JS
事件
轮询
机制
JS
事件
轮询
机制(Event Loop)
概念
事件
轮询
(eventloop) 是"一个解决和处理外部
事件
时将它们转换为回调函数的调用的实体(entity)" JavaScript 语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。所有任务都需要排队,前一个任务结束,才会执行后一个任务。如果前一个任务耗时很长,后一个任务就不得不一直等着。 任务队列 “ 任务队列 " 是一个先进先出的数据结构,排在前面...
js
事件
轮询
(event loop)
以代码执行顺序而言,先代码同步执行,先同步后异步,异步中执行一个宏任务之后清空微任务,然后再执行一个宏任务,然后再清空微任务。!!new promise是同步任务,promise.then才是微任务。练习部分,可以先自己做一下,然后不懂之处借鉴之后的讲解部分。讲解二略冗长是为了更为清晰的介绍
事件
轮询
机制,核心是这个机制,练习是帮助理解。不对之处,欢迎指正,模糊之处,欢迎讨论。
javaScript
事件
轮询
当主线程的同步任务执行完毕之后,开始执行微任务队列的所有微任务,微任务执行完成,执行宏任务队列里面的所有宏任务,执行完成主线程询问任务队列是否还有等待的任务,如果有的话则继续进入主线程执行,以上步骤的循环重复执行就是
事件
轮询
,然后继续执行主线程任务,当异步线程执行完毕,判断异步任务的类型,异步任务可分为宏任务和微任务,不同的任务进入不同的队列,等待调用,首先主线程读取
js
代码,此时是同步环境,当主线程检测到异步操作时,会将异步代码交给其他异步线程处理,常见的宏任务:定时器,微任务:Promise。
JavaScript-1
事件
轮询
js
的
事件
轮询
JavaScript
87,996
社区成员
224,693
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章