博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue 中使用 async/await 将 axios 异步请求同步化处理
阅读量:5812 次
发布时间:2019-06-18

本文共 3072 字,大约阅读时间需要 10 分钟。

1. axios 常规用法:

export default {  name: 'Historys',  data() {    return {       totalData: 0,        tableData: []    }  },  created () {    this.getHistoryData()  },  methods: {     handleClick (tab) {      let data = {        status: tab.name,        name: this.formInline.user,        cid: this.formInline.identity,        start_time: this.formInline.dateTime ? this.formInline.dateTime[0] : '',        end_time: this.formInline.dateTime ? this.formInline.dateTime[1] : ''      }      this.getHistoryData()    },    // 统一处理axios请求    getHistoryData (data) {       axios.get('/api/survey/list/', {        params: data      }).then((res) => {        console.log(res)        this.tableData = res.data.result        this.totalData = res.data.count      }).catch((err) => {        console.log(err)        alert('请求出错!')      })    }  }}

2. 使用 asyns/await 将 axios 异步请求同步化:

2.1 当 axios 请求拿到的数据在不同场景下做相同的处理时:

export default {  name: 'Historys',  data() {    return {       totalData: 0,        tableData: []    }  },  created () {    this.getHistoryData()  },  methods: {     handleClick (tab) {      let data = {        status: tab.name,        name: this.formInline.user,        cid: this.formInline.identity,        start_time: this.formInline.dateTime ? this.formInline.dateTime[0] : '',        end_time: this.formInline.dateTime ? this.formInline.dateTime[1] : ''      }      this.getHistoryData()    },    // 统一处理axios请求    async getHistoryData (data) {      try {        let res = await axios.get('/api/survey/list/', {          params: data        })        this.tableData = res.data.result        this.totalData = res.data.count      } catch (err) {        console.log(err)        alert('请求出错!')      }    }  }}

2.2 当 axios 请求拿到的数据在不同场景下做不同的处理时:

export default {  name: 'Historys',  data() {    return {       totalData: 0,        tableData: []    }  },  async created () {    try {      let res = await this.getHistoryData()      console.log(res)      // 等拿到返回数据res后再进行处理      this.tableData = res.data.result      this.totalData = res.data.count    } catch (err) {      console.log(err)      alert('请求出错')    }   },  methods: {      async handleClick (tab) {      let data = {        status: tab.name,        name: this.formInline.user,        cid: this.formInline.identity,        start_time: this.formInline.dateTime ? this.formInline.dateTime[0] : '',        end_time: this.formInline.dateTime ? this.formInline.dateTime[1] : ''      }      try {        let res = await this.getHistoryData()        console.log(res)        // 等拿到返回数据res后再进行处理        this.tableData = res.data.result        this.totalData = res.data.count      } catch (err) {        console.log(err)        alert('请求出错')      }     },    // 封装axios请求,返回promise, 用于调用getHistoryData函数后作不同处理    getHistoryData (data) {      return new Promise((resolve, reject) => {        axios.get('/api/survey/list/', {          params: data        }).then((res) => {          resolve(res)        }).catch((err) => {          reject(err)        })      })    }  }}

转载于:https://www.cnblogs.com/cckui/p/10444246.html

你可能感兴趣的文章
感悟贴2016-05-13
查看>>
DEV-C++ 调试方法简明图文教程(转)
查看>>
参加婚礼
查看>>
Java重写equals方法和hashCode方法
查看>>
Spark API编程动手实战-07-join操作深入实战
查看>>
Spring ’14 Wave Update: Installing Dynamics CRM on Tablets for Windows 8.1
查看>>
MySQL 备份与恢复
查看>>
TEST
查看>>
PAT A1037
查看>>
(六)Oracle学习笔记—— 约束
查看>>
[Oracle]如何在Oracle中设置Event
查看>>
top.location.href和localtion.href有什么不同
查看>>
02-创建hibernate工程
查看>>
Scrum之 Sprint计划会议
查看>>
svn命令在linux下的使用
查看>>
Gradle之module间依赖版本同步
查看>>
java springcloud版b2b2c社交电商spring cloud分布式微服务(十五)Springboot整合RabbitMQ...
查看>>
10g手动创建数据库
查看>>
Windwos Server 2008 R2 DHCP服务
查看>>
UVa 11292 勇者斗恶龙(The Dragon of Loowater)
查看>>