美文网首页
实现一个函数来处理请求超时

实现一个函数来处理请求超时

作者: 弱冠而不立 | 来源:发表于2021-03-24 17:43 被阅读0次

要求是这样的:
给定一个函数,第一个参数是请求的url,第二个参数是设定的超时时间
主要思路:
使用 Promise.race 取限制优先返回的异步结果

具体实现:

    // 一个异步请求的示例
     const fetchUrl = "https://mock.cangdu.org/mock/5fa25923bcab7337c1b1c274/simple_shopping/product_list";
     const foo = function foo(url, time) {
        const fetchDemo = fetch(fetchUrl);
        const timeout = new Promise((resolve,reject) => {
            setTimeout(()=>{
                reject("请求超时!")
            }, time)
        })
        return Promise.race([fetchDemo, timeout])
     }
  
   // 使用示例
    foo(fetchUrl, 100)
        .then(res => {
            res.json().then(res => {
                console.log(res);
            })
        })
        .catch(err => {
            console.log(err);
        })

上面这个例子,正常情况下是输出一串商品数据,如果把控制台打开然后,调整网速到 Slow 3G,输出的就是报错提示了。

相关文章

  • 实现一个函数来处理请求超时

    要求是这样的:给定一个函数,第一个参数是请求的url,第二个参数是设定的超时时间主要思路:使用 Promise.r...

  • go-context笔记

    WHY 每一个长请求都应该有个超时限制需要在调用中传递这个超时比如开始处理请求的时候我们说是 3 秒钟超时那么在函...

  • uniapp请求超时处理

    一、manifest.json里面可以设置请求超时的时间,networkTimeout 这里是官方文档['http...

  • rn请求超时处理

    https://segmentfault.com/a/1190000021322450[https://segme...

  • axios.all()解决并发请求

    简介:axios.all()、axios.spread()两个辅助函数用于处理同时发送多个请求,可以实现在多个请求...

  • axios.all()解决并发请求

    axios.all()、axios.spread()两个辅助函数用于处理同时发送多个请求,可以实现在多个请求都完成...

  • win+r cmd ping 请求超时 请求超时 请求超时 请求超时 数据包 已发送 =4 已接受 =0 丢...

  • iOS数据请求超时处理

    前言 在网络情况不好时,afnet库请求的默认超时时间过长,为了提高用户体验,我们可以自己设置请求超时时间,并在超...

  • 关于网络请求超时处理

    ios3.0 以后 苹果的sdk对这种情况做了调整,如果是post请求,并且设置了 httpBody,那么请求的超...

  • Promise批量请求函数

    // 实现一个批量请求函数 multiRequest(urls, maxNum)

网友评论

      本文标题:实现一个函数来处理请求超时

      本文链接:https://www.haomeiwen.com/subject/ohtqhltx.html