function createFetchWithTimeout(timeout=2000){
return function (url,options){
return new Promise((resolve,reject)=>{
const singalController=new AbortController();
fetch(url,{...options,signal:singalController.signal}).then(resolve,reject);
setTimeout(()=>{
reject(new Error('fetch timeout'));
singalController && singalController.abort();
},timeout)
})
}
}
function fetchTimeout(url,options,timeout=1000){
return new Promise((resolve,reject)=>{
const singalController=new AbortController();
fetch(url,{...options,signal:singalController.signal}).then(resolve,reject);
setTimeout(()=>{
reject(new Error('fetch timeout 3333'));
singalController.abort();
},timeout)
})
}
createFetchWithTimeout()('http://www.baidu666.com').then(res=>{
console.log(res)
})
fetchTimeout('http://www.baidu666.com').then(res=>{
console.log(res)
})