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);
});

Readme

Keywords

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