事件循环(同步异步任务)执行循序

简单记录一下 JavaScript 中事件循环的执行顺序( 同步异步任务 )

ps:以下均是个人认知,如有问题请大佬纠正,我会及时更改

<script>
// 创建一个延时器( 异步宏任务 )
// 异步宏任务会等到所有其余所有任务执行完毕后才会执行
setTimeout(() => {
    console.log("setTimeout");
}, 0);

// 创建一个 Promise
// Promise 本身是一个同步任务
// Promise 本身并不是一个异步任务,只有 .then 或 .catch 时才是异步任务
// Promise .then 或 .catch 时是异步微任务
new Promise((resolve, reject) => {
    console.log("new Promise");
    resolve(); // 调用 resolve() 执行 .then  ; 调用 reject() 执行 .catch()
})
    .then(() => {
        console.log("Promise .then");
    })
    .catch(() => {
        console.log("Promise .catch");
    });
console.log("同步任务");

// 执行打印循序为
// new Promise
// 同步任务
// Promise .then
// setTimeout


// 所以 "在同一作用域 !!中" JavaScript 中事件循环( 同步异步任务 )执行顺序为
// 1.同步任务
// 2.异步微任务
// 3.异步宏任务
</script>

猜你喜欢

转载自blog.csdn.net/z_langjitianya/article/details/129556282