可以借助 Promise 和 AbortController 进行异步管控和中断请求。
function request(options = {}) { let { delay, url, option = {} } = options; const abortController = new AbortController(); const signal = abortController.signal; return new Promise((resolve, reject) => { fetch(url, { ...option, signal }) .then(r => r.json()) .then(resolve, reject); if (delay === undefined) return; const timer = setTimeout(() => { abortController.abort(); reject({ msg: '请求延时' }); clearTimeout(timer); }, delay); }); }
Activity
[-]设计一个请求中断器,如果一个请求在超过一定的时间下未响应就中段并且并且返回失败。[/-][+]设计一个请求中断器,如果请求超过一定的时间未响应就将其中断并返回失败。[/+]CodeRookie262 commentedon Jan 28, 2021
可以借助 Promise 和 AbortController 进行异步管控和中断请求。