js中的事件循环

17 阅读1分钟

"事件循环",我第一次听到这个名词就感觉很难很难,其实感觉并不是。 可以这样简单的理解:js代码是自上而下执行的,先执行同步代码,然后执行异步代码,异步代码又分为微任务和宏任务。因为微任务的优先级比宏任务高,所以先执行微任务,然后执行宏任务。(可以这样记忆 高危-高微 优先级是微任务比较高), 微任务一般有 promise的then、catch 、finally中的回调。 宏任务一般有:setTimeout、setInterval中的回调。

`

console.log('同步代码开始');

// 微任务
Promise.resolve().then(() => {
  console.log('微任务执行');
});

// 定时器(宏任务)
setTimeout(() => {
  console.log('定时器回调(宏任务)执行');
}, 0);

console.log('同步代码结束');

`

上面代码输出的结果是 同步代码开始->同步代码结束->微任务执行->定时器回调(宏任务)执行