自封装RequestHttp请求方法

Async函数能使多个相关的异步操作如同同步操作一样聚合起来,使其相互间的关系更为清晰、过程更为简洁、调试更为方便。

返回一个Promise对象。

自封装JS文件

import axios from 'axios'
import * as CONFIG from './config'

// 返回请求 //根据接口返回的格式进行相应修改
function httpResponse (res) {
// console.log(res)
let ret = ''
switch (res.code || res.status) {
case '0':
ret = res.data
break
case '200':
ret = res
break
case '20000':
ret = res
break
case '40004':
ret = res
break
default:
// location.href = 'error'
}
return ret
}

/**
* http请求
* @param opts = {headers:{withCredentials: true},url : '/test', method: 'GET', queryString: '?a=12345', data}
* @return {[res = res || false]}
* */
export async function request (opts) {
let response = {}
let _opts = Object.assign({
baseURL: CONFIG.baseURL,
method: 'GET',
queryString: '',
timeout: 10000,
headers: {
// crossDomain: true,
// withCredentials: true,
'Content-Type': 'application/json; charset=UTF-8'
}
}, opts)
_opts.url = _opts.baseURL + _opts.url
// console.log(_opts)
let http = new Promise((resolve, reject) => {
axios(_opts)
.then(res => {
resolve(res)
}).catch(err => {
reject(err)
})
})
await http.then(function (res) {
// success
if (res.status === 200) response = res.data  //根据接口返回的格式进行相应修改
}, function (err) {
// failure
console.log(err)
response = {    //根据接口返回的格式进行相应修改
err: err.response.status,
errMsg: err.response.data.message || '请检查网络是否正常',
code: err.response.data.code
}
})
return httpResponse(response)
}

 引入后使用

// 搜索线路
async searchLine () {
    let res = await this.$parent.request({
    url: `line/search_by_line?line=${this.inputValue}&city_code=${this.cityCode}`
})
if (res) this.lineLists = res
   // alert(JSON.stringify(res))
}

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值