react-with-es6 icon indicating copy to clipboard operation
react-with-es6 copied to clipboard

fetchUtil.js

Open mqy1023 opened this issue 8 years ago • 0 comments

const defaultHeader = {
  'Accept': 'application/json',
  'Content-Type': 'application/json'
};

const delayPromise = (delay) => { // 默认3秒后没返回数据就是超时
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      reject({ status: 408, msg: '网络连接超时!' });
    }, delay);
  });
};

const fetchPromise = (url) => {
  return new Promise((resolve, reject) => {
    fetch(url)
    .then((response) => response.json())
    .then((res) => {
      console.log('res, res', res);
      resolve(res);
    }).catch(err => {
      console.log('err, err', err);
      reject(err);
    })
    .done();
  });
}

const fetchData = (url, delay = 3000) => {
  return Promise.race([delayPromise(delay), fetchPromise(url)]);
}

export default fetchData;

mqy1023 avatar Dec 16 '16 03:12 mqy1023