zoukankan      html  css  js  c++  java
  • 取消Fetch API请求

         如今,Fetch API已经成为现在浏览器异步网络请求的标准方法,但Fetch也是有弊端的,比如: Fetch还没有方法终止一个请求,而且Fetch无法检测上传进度

         现在我们可以通过 AbortControllerAbortSignal 来终止,代码如下:     

              const controller = new AbortController()

              const signal = controller.signal

              fetch('./data.json', { signal })

          可以通过controller.abort()来通知终止事件,比如,你可以在请求发出后3秒来终止请求

          setTimeout(() => { controller.abort(); }, 3 * 1000);

          如果请求完成了,调用absort()不会发生错误

          如果请求没有完成,那么Fetch就会抛出一个DOMException异常,异常的name属性值为"AbortError",可以在promise中的catch捕获这个异常

         例如:  fetch('./data.json', { signal })

                      .then((res) => {})

                      .catch((err) => {

                         if (err.name === 'AbortError') {

                             console.log('Fetch aborted');

                        } else {

                            console.log('Another error');

                       }

                     })

  • 相关阅读:
    HNOI2014
    HNOI2018
    HNOI2015
    HNOI2016
    Luogu4099 HEOI2013 SAO 组合、树形DP
    CF915G Coprime Arrays 莫比乌斯反演、差分、前缀和
    CF1110H Modest Substrings AC自动机、DP
    CF1110E Magic Stones 差分
    CentOS 7 配置OpenCL环境(安装NVIDIA cuda sdk、Cmake、Eclipse CDT)
    LeetCode(134) Gas Station
  • 原文地址:https://www.cnblogs.com/yezi-dream/p/10426213.html
Copyright © 2011-2022 走看看