async await 中的await无效

无效的原因: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) => {});
    };
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 在公司的项目中,我们经常用到async await 这样的函数,它的作用也很奇特,可以让异步的函数等待异步执...
    hahajj_2e72阅读 473评论 0 0
  • 一、 Why? 是新的语法功能,用阮一峰老师的话来形容:“新到都不属于ES6,而是属于ES7”,现在虽然还在提案阶...
    羊驼驼驼驼阅读 678评论 0 3
  • 简单介绍下这几个的关系为方便起见 用以下代码为例简单介绍下这几个东西的关系, async 在函数声明前使用asyn...
    _我和你一样阅读 21,345评论 1 24
  • 有一种特殊的语法可以以更舒适的方式处理promises,称为“async / await”。理解和使用起来非常简单...
    Xludan阅读 529评论 0 0
  • 一、async-await和Promise的关系 async-await是promise和generator的语法...
    笨蛋小明阅读 586评论 0 0