es-promise-ext
Version:
Native promise extensions for javascript and typescript.
17 lines (16 loc) • 657 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = allWithObject;
function allWithObject(values) {
if (typeof values !== 'object' || (values instanceof Array))
throw TypeError('Promise.prototype.allObject parameter 1 must be an object');
const keys = [...Object.keys(values), ...Object.getOwnPropertySymbols(values)];
const promises = keys.map((key) => values[key]);
return () => Promise.all(promises).then(resolvedPromise => {
const result = {};
keys.forEach((key, index) => {
result[key] = resolvedPromise[index];
});
return result;
});
}