说到事件循环我们要说一下JavaScript中的单线程
单线程
单线程是只能在一个时间点内做一个事情所有任务都需要排序
事件循环分为nodejs事件循环和浏览器事件循环
浏览器事件循环分为同步和异步
同步是主线程的任务
异步是进入任务队列的任务只有任务队列通知主线程 异步任务可以执行该任务才会进入主线程中去执行
异步分为宏任务和微任务
常见的宏任务 setTimout setinterval I/O u/I交互事件
常见的微任务 promise.then process.nextTicek
执行顺序
先执行同步任务
遇到异步宏任务放入宏任务队列中
遇到异步微任务放入微任务队列中
当所有的同步任务都执行完毕后 将异步微任务从对列中调入主线程执行
微任务执行完毕后再见异步宏任务从队列中调入主线执行
一直循环知道所有任务都执行完毕