@marvinh/cancel-token
v1.0.1
Published
Tiny cancel tokens similar to AbortController
Downloads
3
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.