async await 中的await无效

文章解释了在JavaScript中,await关键字必须跟一个Promise对象一起使用,以等待Promise的状态变为resolved。在onMounted函数中,如果A和B函数没有返回Promise,await将无效。通过将A和B改为async函数,确保axios.get的返回值被await处理,从而返回Promise,使得await生效。
摘要由CSDN通过智能技术生成

无效的原因:await后不是一个promise,await后需要的是一个promise,这是因为它最主要的意图是用来等待 Promise 对象的状态被 resolved。

    onMounted(async () => {
      await A();  //如果A和B不是返回promise则await无效
      await B();
      C();
    });

例如下面的写法就会导致onMounted中的await无效

    const A = () => {
      $axios.get(api, {}).then((res: any) => {});
    };
    const B = () => {
      $axios.get(api, {}).then((res: any) => {});
    };

为了使A和B返回promise,可以这么修改:

    const A = async() => {
      await $axios.get(api, {}).then((res: any) => {}); //这里的await会有效正是因为axios返回的是promise
    };
    const B = async() => {
      await $axios.get(api, {}).then((res: any) => {});
    };
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值