fetch设置请求超时

常规封装 fetch

// 封装fetch
let POST = function(url, params) {
  const URLS = baseURL + url;
  return fetch(URLS, {
    method: "POST",
    // body: params,
    body: params,
    headers: {
      Accept: "application/json",
      "Content-Type": "application/x-www-form-urlencoded",
      // "Content-Type": "application/json",
      // token: JSON.parse(sessionStorage.getItem("token"))
    },
    mode: "cors", // 以CORS的形式跨域
    cache: "force-cache"
  })
    .then(data => {
      return data.json();
    })
    .then(ret => {
      if (ret.code != 0) {
        return { code: ret.code, msg: ret.message };
      } else {
        return ret;
      }
    });
};

单独设置超时

 // 请求超时
function advertisement(data) {
 return Promise.race([
   // 常规封装 fetch
   fetch.POST('URL', data),
   new Promise((resovle,reject) => {setTimeout(() => {
     reject(new Error('请求超时'));
   },30000)})
 ])
 .then(res => {
   return res.data; // 请求成功
 }).catch(err => {
   console.log(err) // 请求超时
 })
}

封装设置超时

let POST = function(url, params) {
  const URLS = baseURL + url;
  return Promise.race([
  fetch(URLS, {
    method: "POST",
    // body: params,
    body: params,
    headers: {
      Accept: "application/json",
      "Content-Type": "application/x-www-form-urlencoded",
      // "Content-Type": "application/json",
      // token: JSON.parse(sessionStorage.getItem("token"))
    },
    mode: "cors", // 以CORS的形式跨域
    cache: "force-cache"
  })
    new Promise((resovle,reject) => {setTimeout(() => {
      reject(new Error('请求超时'));
    },10000)})
  ])
  .then(res => {  // 请求成功
    if (ret.code != 0) {
      return { code: ret.code, msg: ret.message };
    } else {
      return ret;
    }
  }).catch(err => { // 请求超时
    console.log(err)
  })
};
  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值