volleyball-dev-frontend/node_modules/make-cancellable-promise/src/index.ts
2025-06-02 16:42:16 +00:00

17 lines
402 B
TypeScript

export default function makeCancellablePromise<T>(promise: Promise<T>) {
let isCancelled = false;
const wrappedPromise: typeof promise = new Promise((resolve, reject) => {
promise
.then((value) => !isCancelled && resolve(value))
.catch((error) => !isCancelled && reject(error));
});
return {
promise: wrappedPromise,
cancel() {
isCancelled = true;
},
};
}