A functional cancellable promise implementation.
npm install @blakgeek/cancellable-promisets
const cancellablePromise = new CancellablePromise((resolve, reject) => {
resolve(runLongRunningProcess())
}, (reason: string) => {
console.warn('request cancelled')
});// cancel the promise if it runs longer than 10s
setTimeout(() => {
cancellablePromise.cancel();
}, 10000)
console.log(await cancellablePromise);
`
Make a native Promise cancellable
`ts
const cancellablePromise = CancellablePromise.fromPromise(runLongRunningProcess());// cancel the promise if it runs longer than 10s
setTimeout(() => {
cancellablePromise.cancel();
}, 10000)
console.log(await cancellablePromise);
``