谈谈你是如何理解 JS 异步编程的,EventLoop、消息队列都是做什么的,什么是宏任务,什么是微任务?

  1. js代码本身的执行是单线程同步执行,但是浏览器是多线程的,可以把异步任务通过浏览器线程进行计算,当需要执行的时候,再根据宏任务或微任务放入到对应队列,排队等待执行,就是js的异步编程,都是基于回调进行实现

  2. eventLoop线程主要来负责主线程和其他线程的通信,假如消息读取完成需要主程序执行代码,或者需要执行IO操作了,都需要EventLoop线程去通知

  3. 消息队列:异步任务处理完成会把任务放入到任务队列里面等待执行

  4. 微任务:由js引擎发起,优先执行,不会触发新一轮tick

  5. 宏任务:由宿主发起,会触发新一轮tick

posted @ 2021-06-29 19:01  一个动态类型的幽灵  阅读(92)  评论(0编辑  收藏  举报