原文:Promise 构造函数是同步执行还是异步执行,那么 then 方法呢? - 每天一个JavaScript小知识@Js中文网 · 码农进阶题库

原文地址:https://www.javascriptc.com/interview-tips/zh_cn/javascript/promise-constructor-async-or/

题目描述:

Promise 构造函数是同步执行还是异步执行,那么 then 方法呢?

解题:

promise构造函数是同步执行的,then方法是异步执行的 欢迎大佬们补充!!

直接上代码

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

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

console.log(4)

执行结果是:1243

扩展
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

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

扩展阅读: