@node-elion/utils
Version:
Super scalable enterprise Node.js server library
23 lines • 812 B
JavaScript
/* eslint-disable max-classes-per-file */
export class AbortPromise {
constructor(executor, abortController) {
const abort = abortController || new AbortController();
// @ts-ignore
// eslint-disable-next-line @typescript-eslint/no-shadow
class AbortPromise extends Promise {
constructor(func) {
super((resolve, reject) => func(resolve, reject, abort.signal));
}
// eslint-disable-next-line class-methods-use-this
abort() {
abort.abort();
}
// eslint-disable-next-line class-methods-use-this
get abortController() {
return abort;
}
}
return new AbortPromise(executor);
}
}
//# sourceMappingURL=abortPromise.js.map