Files
med-notes/.pnpm-store/v10/files/53/20645bc7a441008083fdd20911c59c551c992c63b82c5c3bd5b74cb7a95d5db1adeaacd29d0da8c1654970f071d47f373662a58b37e2085bbe5c1c7e3a3caa
2025-05-09 05:30:08 +02:00

17 lines
402 B
Plaintext

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;
},
};
}