我有这段代码:
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');
执行代码时,我得到了以下顺序:
- 创建Promise
- 结束
- 执行Promise
- 超时
问题:为什么create promise
首先被执行?我期望先执行end
,因为它是唯一的同步代码,所以应该首先执行。
new Promise(...)
内的所有内容都是同步执行的吗? - Asking