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');

                       }

                     })

  • 相关阅读:
    Design and Analysis of Algorithms_Decrease-and-Conquer
    TCPL 札记
    谬论:64 = 65?
    二叉树内部顶点与外部顶点在数量上的关系
    Design and Analysis of Algorithms_Divide-and-Conquer
    LeetCode 36. Valid Sudoku
    LeetCode 58. Length of Last Word
    LeetCode 66. Plus One
    LeetCode 67. Add Binary
    LeetCode 70. Climbing Stairs
  • 原文地址:https://www.cnblogs.com/yezi-dream/p/10426213.html
Copyright © 2011-2022 走看看