为什么这段代码输出是先2后1呢?
const promise = new Promise(function (resolve) {
setTimeout(function () {
resolve(1);
console.log("2");
});
})
promise.then(function (res) {
console.log(res);
});
为什么这段代码输出是先2后1呢?
const promise = new Promise(function (resolve) {
setTimeout(function () {
resolve(1);
console.log("2");
});
})
promise.then(function (res) {
console.log(res);
});
13 回答13.1k 阅读
8 回答3k 阅读
3 回答1.5k 阅读✓ 已解决
2 回答5.3k 阅读✓ 已解决
5 回答1.6k 阅读
7 回答2.3k 阅读
3 回答2.4k 阅读✓ 已解决
1、执行new Promise,执行setTimeout,将里面代码加入宏任务
2、执行promise.then,promise状态还未改变,所以还没把then回调加入微任务
3、执行setTimeout代码,执行resolve(1),把then回调加入微任务,执行
console.log("2");
,打印24、执行
console.log(res);
,打印1