export default class HttpUtil { /** * 利用 Promise 的 get 方式请求 * @param url * @returns {Promise} */ static get(url) { request = new Promise((resolve, reject) => { fetch(url, { method: 'GET', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' } }) .then(response => response.json()) .then(result => resolve(result)) }).catch(e => reject(e.message)); const timeoutRequest = new Promise((resolve, reject) => { setTimeout(reject, 30000, 'Request timeout'); }); return Promise .race([request, timeoutRequest]) .then(res => { return res }, m => { throw new Error(m); }); } /** * 利用 Promise 的 post 方式请求 * @param url * @param params * @returns {Promise} */ static post(url, params) { request = new Promise((resolve, reject) => { fetch(url, { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: JSON.stringify(params) }).then(response => response.json()) .then(result => resolve(result)) }).catch(e => reject(e.message)); const timeoutRequest = new Promise((resolve, reject) => { setTimeout(reject, 30000, 'Request timeout'); }); return Promise .race([request, timeoutRequest]) .then(res => { return res }, m => { throw new Error(m); }); } }