make-cancellable-promise

    1.1.0 • Public • Published

    npm downloads CI dependencies dev dependencies tested with jest

    Make-Cancellable-Promise

    Make any Promise cancellable.

    tl;dr

    • Install by executing npm install make-cancellable-promise or yarn add make-cancellable-promise.
    • Import by adding import makeCancellablePromise from 'make-cancellable-promise.
    • Do stuff with it!
      const { promise, cancel } = makeCancellablePromise(myPromise);

    User guide

    makeCancellablePromise(myPromise)

    A function that returns an object with two properties:

    promise and cancel. promise is a wrapped around your promise. cancel is a function which stops .then() and .catch() from working on promise, even if promise passed to makeCancellablePromise resolves or rejects.

    Usage

    const { promise, cancel } = makeCancellablePromise(myPromise);

    Typically, you'd want to use makeCancellablePromise in React components. If you call setState on an unmounted component, React will throw an error.

    Here's how you can use makeCancellablePromise with React:

    function MyComponent() {
      const [status, setStatus] = useState('initial');
    
      useEffect(() => {
        const { promise, cancel } = makeCancellable(fetchData());
    
        promise
          .then(() => setStatus('success'))
          .catch(() => setStatus('error'));
    
        return () => {
          cancel();
        };
      }, []);
    
      const text = (() => {
        switch (status) {
          case 'pending': return 'Fetching…';
          case 'success': return 'Success';
          case 'error': return 'Error!';
          default: return 'Click to fetch';
        }
      })();
    
      return (
        <p>{text}</p>
      );
    }

    Install

    npm i make-cancellable-promise

    DownloadsWeekly Downloads

    440,110

    Version

    1.1.0

    License

    MIT

    Unpacked Size

    8.57 kB

    Total Files

    7

    Last publish

    Collaborators

    • wojtekmaj