问答题878/1593【Promise第四题】下面代码的输出是什么?

1const promise1 = new Promise((resolve, reject) => { 2 console.log('promise1') 3 resolve('resolve1') 4}) 5const promise2 = promise1.then(res => { 6 console.log(res) 7}) 8console.log('1', promise1); 9console.log('2', promise2);
难度:
2022-01-09 创建

参考答案:

过程分析

  • 从上至下,先遇到new Promise,执行该构造函数中的代码promise1
  • 碰到resolve函数, 将promise1的状态改变为resolved, 并将结果保存下来
  • 碰到promise1.then这个微任务,将它放入微任务队列
  • promise2是一个新的状态为pending的Promise
  • 执行同步代码1, 同时打印出promise1的状态是resolved
  • 执行同步代码2,同时打印出promise2的状态是pending
  • 宏任务执行完毕,查找微任务队列,发现promise1.then这个微任务且状态为resolved,执行它。

结果

'promise1'
'1' Promise{<resolved>: 'resolve1'}
'2' Promise{<pending>}
'resolve1'

最近更新时间:2024-07-20

赞赏支持

预览

题库维护不易,您的支持就是我们最大的动力!