【发布时间】:2022-01-30 00:05:56
【问题描述】:
我有这个代码:
setTimeout(function timeout() {
console.log('timeout');
}, 0);
let p = new Promise(function(resolve, reject) {
console.log('create promise');
resolve();
});
p.then(function(){
console.log('execute promise');
});
console.log('end');
我在执行代码时得到这个命令:
- 创建承诺
- 结束
- 执行承诺
- 超时
问:为什么先执行create promise?我希望首先执行end,因为它是唯一一个同步代码,所以应该首先执行。
【问题讨论】:
-
promise 函数在大多数实现中被立即调用。没有必要推迟它的执行
-
@DanielA.White,那么我理解
new Promise(...)中的所有内容都是同步执行的吗? -
是的 - 标准是这样说的:tc39.es/ecma262/multipage/…
标签: javascript