@marvinh/cancel-token

Tiny cancel tokens similar to AbortController

Stats

StarsIssuesVersionUpdatedCreatedSize
@marvinh/cancel-token
1.0.13 years ago4 years agoMinified + gzip package size for @marvinh/cancel-token in KB

Readme

Simple async promise cancellation

Minimal implementation for cancel tokens, similar to AbortController, but without the event handling. Uses the throw keyword under the hood but throws a string to prevent expensive stack trace creation.

Installation

npm install @marvinh/cancel-token
# or
yarn add @marvinh/cancel-token

Usage

import { CancelController } from "@marvinh/cancel-token";

const controller = new CancelController();
const signal = controller.signal;

doSomethingAsync()
  .then(() => {
    if (signal.aborted) throw "Aborted";
    // do something else
  })
  .catch(err => {
    if (err === "Aborted") {
      console.log("was aborted");
    }
  });

The above can be simplified with a helper function:

import { CancelController, wrap } from "@marvinh/cancel-token";

const controller = new CancelController();
const signal = controller.signal;

wrap(doSomethingAsync(), signal).catch(err => {
  if (err === "Aborted") {
    console.log("was aborted");
  }
});

License

MIT, see the license file.

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.