0
点赞
收藏
分享

微信扫一扫

解决AbortController中断请求无法再次请求

小龟老师 2022-05-01 阅读 43

axios新方式中断请求

文档:GitHub - axios/axios: Promise based HTTP client for the browser and node.js

我看了一下api,文档:AbortSignal - Web API 接口参考 | MDN,AbortController - Web API 接口参考 | MDN

这家伙是个只读属性,咋办?方法总是有的,把控制器定在外面为空,用的时候再设置

let controller = null//在外面定一个控制器,设置为空   
    document.getElementById('one').onclick = async () => {
      try {
        // 如果控制器存在,说明有上个请求,就它取消并设置为空
        if (controller) {
          controller.abort()
          controller = null
        }
        //没有的话就到这一步
        controller = new AbortController()
        let res = await request({
          url: "/posts",
          signal: controller.signal
        })
        console.log(res);

      } catch (error) {
        console.log(error);
      }

    }
    document.getElementById('two').onclick = () => {

      if (controller) {
        controller.abort()
        controller = null
      } else {
        console.log('请求为空,无法请求');

      }
    }
举报

相关推荐

0 条评论