В
function parallel(fns, done) {
const results = {};
fns.forEach((fn, index) => {
fn((result) => {
results[index] = result;
if (Object.keys(results).length === fns.length) {
done(results);
}
});
});
}
Size: a a a
В
function parallel(fns, done) {
const results = {};
fns.forEach((fn, index) => {
fn((result) => {
results[index] = result;
if (Object.keys(results).length === fns.length) {
done(results);
}
});
});
}
F
L
const parallel = async (funcArray) => new Promise((resolve, reject) => {
const resultArray = []
let summary = 0
funcArray.map((p, i) => Promise.resolve(p).then((value, error) => {
if ( error )
reject(error)
resultArray[i] = value
if ( ++summary === funcArray.length )
resolve(resultArray)
}))
})
S
const parallel = async (funcArray) => new Promise((resolve, reject) => {
const resultArray = []
let summary = 0
funcArray.map((p, i) => Promise.resolve(p).then((value, error) => {
if ( error )
reject(error)
resultArray[i] = value
if ( ++summary === funcArray.length )
resolve(resultArray)
}))
})
В
function parallel(fns, done) {
const results = {};
fns.forEach((fn, index) => {
fn((result) => {
results[index] = result;
if (Object.keys(results).length === fns.length) {
done(results);
}
});
});
}
F
L
П
П
DE
П
DE
p.then(resolve)
L
const parallel = (funcArray, doneAll) =>
Promise.all(funcArray.map(f => new Promise(r => f(r)))).then(doneAll)
S
const parallel = (funcArray, doneAll) =>
Promise.all(funcArray.map(f => new Promise(r => f(r)))).then(doneAll)