html5 - Javascript单线程中消息队列的执行疑问

 闺蜜好我会明白 发布于 2022-11-04 22:52

陆陆续续看了一些js单线程,事件循环和消息队列的文章,但是有一个疑问是,当event loop消息队列的时候,假设里面有ajax和settimeout两个消息,当但是settimeout是先进入消息队列,ajax是后入,但是ajax先回馈结果了,settimout还没有,这个时候,event loop应该是先执行ajax吧?其实结合日常开发我也知道应该是这么回事,但是我看一些文章好像说异步消息队列也是按顺序轮询执行的,但是明明后面的比你先反馈,应该是先执行对把?

3 个回答
  • 按照我这两天看的情况,异步任务只有在完成相关触发条件才会被推入“任务队列”,等待主线程执行完同步任务按照先进先出的顺序执行“任务队列”中的任务。

    2022-11-08 16:10 回答
  • 这个问题, 说起来比较长, 这里有篇文章, 很长但是建议深读. Ajax知识体系大梳理 | louis blog
    当然sf的专栏也是有的: Ajax知识体系大梳理 - 路易斯聊前端
    如果有不明白的地方, 直接文章底下给我留言就行.

    2022-11-08 16:16 回答
  • ajax执行完,剩余事件进入 event loop. setTimeout 在延迟的时间结束时,将参数里的回掉放入event loop

    推荐你一个网站,在线掩饰event loophttp://latentflip.com/loupe

    2022-11-08 16:26 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有