为什么这段代码输出是先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);
});
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
1、执行new Promise,执行setTimeout,将里面代码加入宏任务
2、执行promise.then,promise状态还未改变,所以还没把then回调加入微任务
3、执行setTimeout代码,执行resolve(1),把then回调加入微任务,执行
console.log("2");
,打印24、执行
console.log(res);
,打印1