make-cancel-promise
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

make-cancel-promise tests codecov

Make your promises cancelable

Install

NPM:

npm install make-cancel-promise

Features

  1. Working with native, polyfills, shim'ed Promises
  2. Isomorphic library
  3. Zero dependencies
  4. Typescript declarations

Usage example

Basic usage

import {
    makeCancelPromise, 
    CancelablePromiseError,
    cancelPromise
} from 'make-cancel-promise';
 
const cancelablePromise = makeCancelPromise(
    (resolve, reject, onCancel) => {
        const timeoutResolve = setTimeout(() => {
            resolve('resolve');
        }, 10);
        const timeoutReject = setTimeout(() => {
            reject('reject');
        }, 20);
        onCancel(() => {
            clearTimeout(timeoutResolve);
            clearTimeout(timeoutReject);
        });
});
 
cancelablePromise.catch((e) => {
    if(instanceof CancelablePromiseError){
        console.log('Promise has been canceled');
    }       
});
 
cancelPromise(cancelablePromise).catch((e) => {
  console.error(e);
});

Cancel with ClearSymbol

import {
    makeCancelPromise, 
    CancelablePromiseError, 
    clearSymbol
} from 'make-cancel-promise';
 
const cancelablePromise = makeCancelPromise(
    (resolve, reject, onCancel) => {
        const timeoutResolve = setTimeout(() => {
            resolve('resolve');
        }, 10);
        const timeoutReject = setTimeout(() => {
            reject('reject');
        }, 20);
        onCancel(async () => {
            clearTimeout(timeoutResolve);
            clearTimeout(timeoutReject);
            });
});
 
cancelablePromise.catch((e) => {
    if(instanceof CancelablePromiseError){
        console.log('Promise has been canceled');
    }       
});
 
cancelablePromise[clearSymbol]().catch((e) => {
  console.error(e);
});

Cancel with ClearSymbol without rejecting

import {
    makeCancelPromise, 
    CancelablePromiseError, 
    clearSymbol
} from 'make-cancel-promise';
 
const cancelablePromise = makeCancelPromise(
    (resolve, reject, onCancel) => {
        const timeoutResolve = setTimeout(() => {
            resolve('resolve');
        }, 10);
        const timeoutReject = setTimeout(() => {
            reject('reject');
        }, 20);
        onCancel(async () => {
            clearTimeout(timeoutResolve);
            clearTimeout(timeoutReject);
        });
});
 
cancelablePromise.catch((e) => {
    if(instanceof CancelablePromiseError){
        console.log('Promise has been canceled');
    }       
});
 
// passing false to "clearSymbol" function will be cancel promise without rejecting
cancelablePromise[clearSymbol](false).catch((e) => {
  console.error(e);
});

Dependencies (0)

    Dev Dependencies (10)

    Package Sidebar

    Install

    npm i make-cancel-promise

    Weekly Downloads

    0

    Version

    1.0.2

    License

    MIT

    Unpacked Size

    10.1 kB

    Total Files

    6

    Last publish

    Collaborators

    • sw1tchdev