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

1const async1 = async () => { 2 console.log('async1'); 3 setTimeout(() => { 4 console.log('timer1') 5 }, 2000) 6 await new Promise(resolve => { 7 console.log('promise1') 8 }) 9 console.log('async1 end') 10 return 'async1 success' 11} 12console.log('script start'); 13async1().then(res => console.log(res)); 14console.log('script end'); 15Promise.resolve(1) 16 .then(2) 17 .then(Promise.resolve(3)) 18 .catch(4) 19 .then(res => console.log(res)) 20setTimeout(() => { 21 console.log('timer2') 22}, 1000) 23
难度:
2022-01-09 创建

参考答案:

解析

需要注意的点:

  • async函数中await的new Promise要是没有返回值的话则不执行后面的内容
  • .then函数中的参数期待的是函数,如果不是函数的话会发生透传
  • 注意定时器的延迟时间

结果

'script start'
'async1'
'promise1'
'script end'
1
'timer2'
'timer1'

最近更新时间:2022-01-09

赞赏支持

预览

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