关于promise及event loop

本篇记录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

结论:

  1. Promise.then是异步执行的,而创建Promise实例(executor)是同步执行的。
  2. setTimeout的异步和Promise.then的异步不在同一个队列中。
  3. Promise.then的异步队列优先于setTimeout的异步队列。

你可能感兴趣的:(关于promise及event loop)