为了账号安全,请及时绑定邮箱和手机立即绑定

async await vue

标签:
杂七杂八

async/await 是 Vue.js 提供的一种语法糖,让异步代码看起来更简单易懂。它基于 Promise,可以让我们在组件中更方便地处理异步操作。

在 Vue.js 中,async/await 的语法糖可以让我们写出这样的代码:

methods: {
  async loadData() {
    const data = await response.json();
    return data;
  },
  async saveData(data) {
    const response = await fetch('/api/save-data', {
      method: 'POST',
      body: data,
      headers: {
        'Content-Type': 'application/json'
      }
    });
    return response.json();
  },
  async loadDataAsync() {
    const data = await response.json();
    return data;
  },
  async saveDataAsync(data) {
    const response = await fetch('/api/save-data', {
      method: 'POST',
      body: data,
      headers: {
        'Content-Type': 'application/json'
      }
    });
    return response.json();
  }
}

以上代码中,我们定义了两个方法 loadData()saveData()。在这些方法中,我们使用了 await 关键字来等待 Promise resolve。

loadData() 方法的 Promise 是从 response.json() 方法返回的。response.json() 方法返回一个 Promise,这个 Promise 会在后续的 await 语句中 resolving,并返回 Promise 所代表的响应数据。

saveData() 方法的 Promise 是从 fetch('/api/save-data', {... }) 方法返回的。fetch() 方法返回一个 Promise,这个 Promise 会在后续的 await 语句中 resolving,并返回 Promise 所代表的响应数据。

asyncawait 的组合中,我们还可以使用 await 关键字来等待 Promise resolve。例如:

methods: {
  async loadDataAsync() {
    const data = await response.json();
    return data;
  },
  async saveDataAsync(data) {
    const response = await fetch('/api/save-data', {
      method: 'POST',
      body: data,
      headers: {
        'Content-Type': 'application/json'
      }
    });
    return response.json();
  },
  async loadData() {
    const data = await response.json();
    return data;
  },
  async saveData(data) {
    const response = await fetch('/api/save-data', {
      method: 'POST',
      body: data,
      headers: {
        'Content-Type': 'application/json'
      }
    });
    return response.json();
  }
}

以上代码中,我们定义了 async loadDataAsync()async saveDataAsync() 方法来使用 async/await。这些方法的 Promise 是由 fetch() 方法返回的,而不是由原生 JavaScript 的 Promise 返回的。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消