事件循环
异步任务、宏任物、微任务、函数调用栈。
异步任务的类型(Web APIs)
宏任物
微任务
🌰 看一个例子 🌰
js
console.log("每");
setTimeout(function () {
console.log("身");
Promise.resolve().then(() => {
console.log("不");
});
new Promise(function (resolve) {
console.log("体");
resolve();
})
.then(function () {
console.log("生");
})
.then(function () {
console.log("锈");
});
}, 10); //进入WebApis进程(事件触发线程),10s后放入任务队列,在第二轮宏任务中执行
setTimeout(function () {
console.log("次");
}, 0); //进入WebApis进程(事件触发线程),0s后放入任务队列,在第二轮宏任务中执行
Promise.resolve().then(() => {
console.log("动");
});
new Promise(function (resolve) {
console.log("周");
resolve("_gagaga_");
}).then(function (res) {
console.log("两");
return res;
});
// 输出结果:每 周 动 两 Promise {<fulfilled>: '_gagaga_'} 次 身 体 不 生 锈
参考我的这篇 事件循环 公众号文章