Promise难题求解

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

问: 输出顺序。。。。

阅读 1.7k
3 个回答

正确输出: 1,2,4,3

解释:Promise 构造函数是同步执行的,promise.then 中的函数是异步执行的。

1
2
4
3

原因:
promise一旦建立立即执行,所以首先打印 1 2
因为promise.then()异步执行,会进入任务队列,等待主线程任务执行完后才执行
所以先打印4,最后打印3
所以最终结果为
1
2
4
3

耐心看懂

看懂之后 以后这种都不会成为你的问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题