惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Last Week in AI
Last Week in AI
H
Help Net Security
博客园 - 叶小钗
V
Visual Studio Blog
阮一峰的网络日志
阮一峰的网络日志
博客园 - 三生石上(FineUI控件)
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Azure Blog
Microsoft Azure Blog
G
Google Developers Blog
腾讯CDC
MongoDB | Blog
MongoDB | Blog
宝玉的分享
宝玉的分享
P
Proofpoint News Feed
GbyAI
GbyAI
Microsoft Security Blog
Microsoft Security Blog
A
About on SuperTechFans
博客园 - 司徒正美
人人都是产品经理
人人都是产品经理
T
The Blog of Author Tim Ferriss
Martin Fowler
Martin Fowler
月光博客
月光博客
博客园 - 聂微东
酷 壳 – CoolShell
酷 壳 – CoolShell
Vercel News
Vercel News

博客园 - howhy

TypeScript any vs unknown 详细对比 TypeScript interface vs type 完整对比 html 元素包含关系 this 指向 空对象 Object.keys for ...in Reflect.ownKeys ...区别 逻辑运算符和空值运算符 运算符优先级 js 类型显式转换 js 高级函数 js 方法重载 js 任务顺序执行 暂停 js 并发任务 判断两个对象是否相同 js 动态拦截属性 js 通用动画 js groupby js 防抖和节流 实现 instanceof 操作符 js 单例模式 js 数组去重和扁平方法 js 继承方法 js new的过程实现 js deepCopy js '=='的隐性类型转换规则
fetch timeout
howhy · 2026-01-22 · via 博客园 - howhy
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)
})