make-cancellable-promise
Version:
Make any Promise cancellable.
15 lines (14 loc) • 413 B
JavaScript
export default function makeCancellablePromise(promise) {
let isCancelled = false;
const wrappedPromise = new Promise((resolve, reject) => {
promise
.then((value) => !isCancelled && resolve(value))
.catch((error) => !isCancelled && reject(error));
});
return {
promise: wrappedPromise,
cancel() {
isCancelled = true;
},
};
}