本篇记录promise及event loop背后的故事
例子
console.log('script start');
setTimeout(function() {
console.log('setTimeout');
}, 0);
Promise.resolve().then(function() {
console.log('promise1');
}).then(function() {
console.log('promise2');
});
console.log('script end');
执行结果:
script start
script end
promise1
promise2
setTimeout
结论:
- Promise.then是异步执行的,而创建Promise实例(executor)是同步执行的。
- setTimeout的异步和Promise.then的异步不在同一个队列中。
- Promise.then的异步队列优先于setTimeout的异步队列。