async/await处理异步问题

1.async 函数返回一个 Promise 对象

  methods: {
    async fn () {
      return '@Author huangzuowen","@DateTime 2019/3/8'
    }
  },
  mounted(){
    this.fn() //Promise 对象
    this.fn().then( (v) => console.log(v)) // '@Author huangzuowen","@DateTime 2019/3/8'
  }
methods: {
    async fn () {
      throw new Error('error');
    }
  },
  mounted(){
    this.fn().then(v => console.log(v)).catch( e => console.log(e)); //捕获异常==>Error: error
  }

2.async 函数返回的 Promise 对象,必须等await命令的 Promise 对象执行完毕,才会执行下一步。

 methods: {
    async fn () {
      let result = await getUserlist()
      this.userList =  result.data
      return 'done';
      // getUserlist() 方法执行后返回数据给_result,然后再对返回的数据做更多的操作。
    }
  },
  mounted(){
    this.fn().then( (v) => console.log(v)) // 'done'
  }

3.async函数错误回调处理。

  methods: {
    /*
      1.当 async 函数中只要一个 await 出现 reject 状态,则后面的 await 都不会被执行。
      2.如果有多个 await 则可以将其都放在 try/catch 中。
    */
    async fn () {
      try {
        await Promise.reject('error')
      } catch (error) {
        console.log(error);
      }
      statsu = await 'ok';
        return statsu;
      }
  },
  mounted(){
    this.fn().then( (v) => console.log(v)) // 'ok'
  }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值