• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

在vue使用async/await

武飞扬头像
百事可乐☆
帮助1

async/await是什么

async/await 是ES7提出的基于Promise的解决异步的最终方案。至于什么时候用这个,我的理解是比如页面初始化时要展示的内容有几个接口里面的数据合成的,有的内容需要别的接口里面的字段来展示,但是有的接口已经请求完毕但是有的接口还没请求完就会造成页面展示内容缺失或报错。简单来说就是把异步执行 转成同步代码。

async

async是一个加在函数前的修饰符,被async定义的函数会默认返回一个Promise对象resolve的值。因此对async函数可以直接then,返回值就是then方法传入的函数。

await

await 也是一个修饰符,只能放在async定义的函数内。可以理解为等待

await 修饰的如果是Promise对象:可以获取Promise中返回的内容(resolve或reject的参数),且取到值后语句才会往下执行。

错误用法

 time() {

      setTimeout(() => {

        console.log("我先执行的");

      }, 3000);

    },

    setTime() {

      console.log("我等三秒再执行");

    },

    async fun() {

      await this.time();

      await this.setTime();

    },

我们看控制台打印的结果

学新通

先执行的是setTime这个函数,这样写async/await是不生效的。

await修饰的是Promise对象,可以获取Promise返回的内容,且取到里面的值后语句才会往下执行。

如果不是Promis对象,await对此表达式的类型没有影响。

其实在编辑器里就会有提示,await 不生效的话下面会有三个点,它不会报错。

正确的用法

 time() {

      return new Promise((resolve) => {

        setTimeout(() => {

          resolve("我先执行的");

        }, 3000);

      });

    },

    setTime() {

      return new Promise((resolve) => {

        resolve("我等三秒再执行");

      });

    },

    async fun() {

      let a = await this.time();

      let b = await this.setTime();

      console.log(a);

      console.log(b);

    },

 看打印结果

 学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhcigiaj
系列文章
更多 icon
同类精品
更多 icon
继续加载