villa
Version:
Promise utilities for async/await-ready environment.
28 lines • 1.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/** @internal */
exports.awaitableCreators = [];
/**
* Create a promise for an object.
* @param emitter The emitter to listen on 'error' event for rejection, and
* given event types for fulfillment.
* @param type A string or an array of string of event types for fulfillment.
* @param errorEmitters Other emitters to listen on 'error' event for
* rejection.
*/
function awaitable(target) {
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
for (var _a = 0, awaitableCreators_1 = exports.awaitableCreators; _a < awaitableCreators_1.length; _a++) {
var creator = awaitableCreators_1[_a];
var promise = creator.apply(void 0, [target].concat(args));
if (promise) {
return promise;
}
}
throw new TypeError('Cannot create awaitable from the target object with given arguments');
}
exports.awaitable = awaitable;
//# sourceMappingURL=awaitable.js.map