晓果_H 2025-02-28 22:38 采纳率: 100%
浏览 14
已结题

关于大厂面试题#javascript#的问题: 加await和不加await的输出结果不一样吗

为什么async1()中 return那里, 加await和不加await的输出结果不一样吗??


```javascript
async function async1() {

      return await Promise.resolve(1);
    }


    async1().then((res) => {
      console.log(res);

    })
    new Promise((resolve) => {
      resolve('2');
    }).then((res) => {
      console.log(res);

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

    })


```

  • 写回答

3条回答 默认 最新

  • 道友老李 JWE233286一种基于机器视觉的水表指针读数识别及修正的方法 专利发明者 2025-02-28 22:38
    关注
    让【道友老李】来帮你解答,本回答参考gpt编写,并整理提供,如果还有疑问可以点击头像关注私信或评论。
    如果答案让您满意,请采纳、关注,非常感谢!
    在`async1()`函数中,加上`await`关键字会使得`Promise.resolve(1)`在返回之前等待其结果,而不加`await`关键字则会直接返回`Promise.resolve(1)`的`Promise`对象。 所以,加上`await`关键字后,`async1()`函数会返回`1`,而不加`await`关键字,则会返回`Promise.resolve(1)`的`Promise`对象。 实现代码如下:
    async function async1() {
        return await Promise.resolve(1);
    }
    async1().then((res) => {
        console.log(res);
    })
    new Promise((resolve) => {
        resolve('2');
    }).then((res) => {
        console.log(res);
    }).then(() => {
        console.log(3);
    })
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月5日
  • 已采纳回答 2月28日
  • 修改了问题 2月28日
  • 创建了问题 2月28日