remote-controlled-promise
Version:
Create a Promise object that is controllable from outside
37 lines • 983 B
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
function create() {
let resolve;
let reject;
const controller = new Controller(x => resolve(x), x => reject(x));
const promise = new Promise((res, rej) => {
resolve = res;
reject = rej;
});
return new ControlledPromise(controller, promise);
}
exports.create = create;
class ControlledPromise {
constructor(controller, promise) {
this.controller = controller;
this.promise = promise;
}
resolve(value) {
this.controller.resolve(value);
return this.promise;
}
reject(reason) {
this.controller.reject(reason);
return this.promise;
}
}
exports.ControlledPromise = ControlledPromise;
class Controller {
constructor(resolve, reject) {
this.resolve = resolve;
this.reject = reject;
}
}
exports.Controller = Controller;
exports.default = create;
//# sourceMappingURL=index.js.map
;