frontend-challenges
frontend-challenges copied to clipboard
513 - parallel() - javascript
index.js
function promisify(func) {
return new Promise((resolve, reject) => {
func((err, data) => {
if (err) {
reject(err);
} else {
resolve(data);
}
});
});
}
export function parallel(funcs) {
return async function (callback) {
try {
const promises = funcs.map(promisify); // run all at once
const result = await Promise.all(promises);
callback(null, result);
} catch (error) {
callback(error, undefined); // if one fails, callback with error
}
};
}