fetch timeout

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)
})

 

posted @ 2026-01-22 14:19  howhy  阅读(1)  评论(0)    收藏  举报