axios关于同步执行ajax请求方法

axios关于同步执行ajax请求方法

调用函数要申明前缀async
内部函数调用要用await

// 上传图片 OK
    async UploadFile(file, fileList) {
      var that = this;
      //
      var api_dateitme = await ajax.ajax_tb(
        config.api_zt + "/api/sys/datetime",
        "get",
        {},
        null
      );
      // ajax.ShowJsonEq(api_dateitme.data.data)
      var t_datetime = api_dateitme.data.data;
      //同步获取日期后再使用t_datetime变量
      //....
   }   
// 同步
export async function ajax_tb_test(url, type, params, p_headers) {
  var result = await ajax_tb(url, type, params, p_headers)
  return result.data
}
// 定义ajax的promise函数
export function ajax_tb(url, type, params, p_headers) {
  return new Promise((resolve, reject) => {
    if (!p_headers) {
      // p_headers={ "Content-Type": "application/json" };
      p_headers = { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }
    }
    var tUrl = url
    if (type === 'post' || type === 'POST') {
      axios.post(tUrl, qs.stringify(params),{ headers: p_headers }).then(r => {
        resolve(r)
      }).catch(r => {
        gotoLoginPage(r)
      })
    }
    if (type === 'get' || type === 'GET') {
      axios.get(tUrl, {
        params: params
      }).then(r => {
        resolve(r)
      }).catch(r => {
        gotoLoginPage(r)
      })
    }
    if (type === 'put' || type === 'PUT') {
      axios.put(tUrl, params).then(r => {
        resolve(r)
      }).catch(r => {
        gotoLoginPage(r)
      })
    }
    if (type === 'delete' || type === 'DELETE') {
      axios.delete(tUrl, {
        params: params
      }).then(r => {
        resolve(r)
      }).catch(r => {
        gotoLoginPage(r)
      })
    }
    if (type === 'patch' || type === 'PATCH') {
      axios.patch(tUrl, params).then(r => {
        resolve(r)
      }).catch(r => {
        gotoLoginPage(r)
      })
    }
  })
}
// --
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值