function parseJSON(response) { return response.json(); } function checkStatus(response) { if (response.status >= 200 && response.status < 300) { return response; } const error = new Error(response.statusText); error.response = response; throw error; } const fetchLoading = () => { const fetchCount = new CustomEvent('fetchCount', { detail: { value: window.fetchCount }, }); window.dispatchEvent(fetchCount); }; /** * Requests a URL, returning a promise. * * @param {string} url The URL we want to request * @param {object} [options] The options we want to pass to "fetch" * @return {object} An object containing either "data" or "err" */ export default function request(url, options) { // if (window.fetchCount > 0) { // window.fetchCount += 1; // } else { // window.fetchCount = 1; // fetchLoading(); // } return fetch(url, options) .then(checkStatus) .then(parseJSON) .then((data) => { console.log('=====data', data); // window.fetchCount -= 1; // if (window.fetchCount <= 0) { // fetchLoading(); // } return { data }; }) .catch((err) => { console.log('=====err', err); window.fetchCount -= 1; // if (window.fetchCount <= 0) { // fetchLoading(); // } return { err }; }); }