let abort = null; let abortPromise = new Promise((resolve, reject) => { abort = () => { return reject({ code: 504, message: "請求超時!" }); }; });
let fetchPromise=fetch(url,prama)
// 最快出結果的promise 做爲結果
let resultPromise = Promise.race([fecthPromise, abortPromise]); setTimeout(() => { abort(); }, timeout); return resultPromise;
/** * 實現fetch的timeout 功能 * @param {object} fecthPromise fecth * @param {Number} timeout 超時設置,默認5000ms * */
function fetch_timeout(fecthPromise, timeout = 5000) { let abort = null; let abortPromise = new Promise((resolve, reject) => { abort = () => { return reject({ code: 504, message: "請求超時!" }); }; }); // 最快出結果的promise 做爲結果
let resultPromise = Promise.race([fecthPromise, abortPromise]); setTimeout(() => { abort(); }, timeout); returnresultPromise.then(res => {
} export default fetch_timeout;