nope-js-node
Version:
NoPE Runtime for Nodejs. For Browser-Support please use nope-browser
50 lines (49 loc) • 1.38 kB
JavaScript
;
/**
* @author Martin Karkowski
* @email m.karkowski@zema.de
* @create date 2020-11-06 09:07:28
* @modify date 2020-11-06 09:09:33
* @desc [description]
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.NopePromise = void 0;
/**
* A Custom Implementation of Nope-Promise.
* They are cancelable.
*
* @export
* @class NopePromise
* @extends {Promise<T>}
* @implements {INopePromise<T>}
* @template T Type of the Default Promise
* @template E Type of the Cancelation Data.
*/
class NopePromise extends Promise {
/**
* Function used to cancel the Element.
*
* @param {E} reason
* @memberof NopePromise
*/
cancel(reason) {
throw new Error("Method has to be overwritten");
}
/**
* Creates an instance of NopePromise.
* @param {((resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void)} executor
* @param {(reason: E) => void} [cancel]
* @param {string} [taskId]
* @memberof NopePromise
*/
constructor(executor, cancel, taskId) {
super(executor);
if (typeof cancel === "function") {
this.cancel = cancel;
}
if (typeof taskId === "string") {
this.taskId = taskId;
}
}
}
exports.NopePromise = NopePromise;