前端100问

【前端100问】Q13:Promise 构造函数是同步执行还是异

2020-12-09  本文已影响0人  alanwhy

写在前面

此系列来源于开源项目:前端 100 问:能搞懂 80%的请把简历给我
为了备战 2021 春招
每天一题,督促自己
从多方面多角度总结答案,丰富知识
Promise 构造函数是同步执行还是异步执行,那么 then 方法呢?

正文回答

const promise = new Promise((resolve, reject) => {
  console.log(1);
  resolve();
  console.log(2);
});

promise.then(() => {
  console.log(3);
});

console.log(4);

执行结果是:1243
promise 构造函数是同步执行的,then 方法是异步执行的

Promise new 的时候会立即执行里面的代码 then 是微任务 会在本次任务执行完的时候执行 setTimeout 是宏任务 会在下次任务执行的时候执行

一些扩展

const promise = new Promise((resolve, reject) => {
  console.log(1);
  resolve(5);
  console.log(2);
}).then((val) => {
  console.log(val);
});

promise.then(() => {
  console.log(3);
});

console.log(4);

setTimeout(function () {
  console.log(6);
});

// 124536
上一篇 下一篇

猜你喜欢

热点阅读