axios 中断请求

1

    <button onclick="test()">click me</button>
    <script src="https://unpkg.com/axios@0.18.0/dist/axios.js"></script>

    <script>
      const l = console.log;

      async function test() {
        const CancelToken = axios.CancelToken;
        const source = CancelToken.source();

        axios("http://localhost:5000/test", {
          cancelToken: source.token,
        })
          .then(r => {
            l(r.data);
          })
          .catch(err => {
            if (axios.isCancel(err)) {
              l(err.message);
            } else {
              console.error(err);
              // handle error
            }
          });

        source.cancel("abort。");
      }
    </script>

2

        const CancelToken = axios.CancelToken;
        let cancel;

        axios("http://localhost:5000/test", {
          cancelToken: new CancelToken(function executor(c) {
            l(`请求结束前`);
            cancel = c;
          }),
        })
          .then(r => {
            l(r.data);
          })
          .catch(err => {
            if (axios.isCancel(err)) {
              l(err.message);
            } else {
              console.error(err);
              // handle error
            }
          });

        cancel(`message`);
posted @ 2018-11-29 11:31  Ajanuw  阅读(2696)  评论(0编辑  收藏  举报