1.0.3 • Published 2 years ago

react-use-cancel-token v1.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

useCancelToken

NPM Downloads JavaScript Style Guide

A handy react hook to cancel axios requests

Demo

Install

npm install --save react-use-cancel-token

Usage

useAbortController

import * as React from 'react';
import axios from 'axios';

import useAbortController from 'react-use-cancel-token';

const Example = () => {
  const { newAbortSignal, cancelPreviousRequest, isCancel } =  useAbortController();

  const handleClick = async () => {
    cancelPreviousRequest();

    try {
      const response = await axios.get('request_url', { signal: newAbortSignal() });

      if (response.status === 200) {
        // handle success
      }
    } catch (err) {
      if (isCancel(err)) return;
      console.error(err);
    }
  };

  return <button onClick={handleClick}>send request</button>;
};

Outputs

PropertyTypeDescription
controllerMutableObjectRefReference to the AbortController instance
newAbortSignal() => AbortSignalGenerate the abort signal sent in the Axios request
cancelPreviousRequest() => voidCancel any previous Axios request
isCancel() => booleanCheck if the error returned in Axios response is an abort error

useCancelToken (deprecated)

import * as React from 'react';
import axios from 'axios';

import { useCancelToken } from 'react-use-cancel-token';

const Example = () => {
  const { newCancelToken, cancelPreviousRequest, isCancel } = useCancelToken();

  const handleClick = async () => {
    cancelPreviousRequest();

    try {
      const response = await axios.get('request_url', { cancelToken: newCancelToken() });

      if (response.status === 200) {
        // handle success
      }
    } catch (err) {
      if (isCancel(err)) return;
      console.error(err);
    }
  };

  return <button onClick={handleClick}>send request</button>;
};

Outputs

PropertyTypeDescription
sourceMutableObjectRefReference to Axios cancel token source
newCancelToken() => CancelTokenGenerate the cancel token sent in the Axios request
cancelPreviousRequest() => voidCancel any previous Axios request
isCancel() => booleanCheck if the error returned in Axios response is a cancel token error

License

MIT © AXeL-dev

1.0.3

2 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago