1.1.0 • Published 7 months ago

@krivega/cancelable-promise v1.1.0

Weekly downloads
13
License
MIT
Repository
github
Last release
7 months ago

cancelable-promise

npm npm bundle size

Various abstractions over promises

Install

npm

npm install @krivega/cancelable-promise

yarn

yarn add @krivega/cancelable-promise

Usage

cancelablePromise

import cancelablePromise, {
  isCanceledError
} from '@krivega/cancelable-promise/dist/cancelablePromise';

const basePromise = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('done');
  }, 5000);
});

const promise = cancelablePromise(basePromise);

promise.cancel();

promise
  .then(() => {
    // will not be called
  })
  .catch(error => {
    if (isCanceledError(error)) {
      console.log('promise is canceled!');
    }
  });

CancelableRequest

import CancelableRequest, {
  isCanceledError
} from '@krivega/cancelable-promise/dist/CancelableRequest';

const request = () =>
  new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('done');
    }, 5000);
  });

const cancelableRequester = new CancelableRequest(request);

const promise1 = cancelableRequest.request();
const promise2 = cancelableRequest.request();

promise1
  .then(() => {
    // will not be called
  })
  .catch(error => {
    if (isCanceledError(error)) {
      console.log('promise is canceled!');
    }
  });
promise1.then(() => {
  console.log('done');
});

API

CancelableRequest.cancelRequest

const cancelableRequester = new CancelableRequest(request);

const promise = cancelableRequest.request();
cancelableRequest.cancelRequest();

promise
  .then(() => {
    // will not be called
  })
  .catch(error => {
    if (isCanceledError(error)) {
      console.log('promise is canceled!');
    }
  });

Run tests

npm test

Maintainer

Krivega Dmitriy

Contributing

Contributions, issues and feature requests are welcome!Feel free to check issues page. You can also take a look at the contributing guide.

📝 License

Copyright © 2020 Krivega Dmitriy. This project is MIT licensed.

1.1.0

7 months ago

1.0.0

7 months ago

0.5.0

1 year ago

0.4.0

2 years ago

0.1.10

2 years ago

0.3.0

2 years ago

0.2.0

2 years ago

0.1.9

3 years ago

0.1.2

3 years ago

0.1.8

3 years ago

0.1.4

3 years ago

0.1.3

3 years ago

0.1.6

3 years ago

0.1.5

3 years ago

0.1.1

4 years ago

0.1.0

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago