react-with-es6
react-with-es6 copied to clipboard
fetchUtil.js
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;