Я хотел бы получить несколько советов о том, как передать данные вместе с массивом обещаний, чтобы эти данные можно было использовать позже после вызова await Promise.all()
.
Я довольно новичок в узле и promises
. В итоге приведенный ниже код делает то, что я хочу, но кажется грязным, когда promises array
отделен от соответствующего data array
. Я думаю, что это обычное явление и было бы более простое решение.
Я смог добиться того же результата, подключив функцию then()
к asyncFunc return
, но это делает код более запутанным и по какой-то причине выполнение занимает вдвое больше времени.
async function foo(inputs) {
var promises = [];
var datas = [];
for (var input of inputs.values()) {
promises.push(asyncFunc(input.a));
datas.push(input.b);
}
var outputs = [];
for (let result of (await Promise.all(promises)).values()) {
outputs.push({
data: datas.shift(),
result: result
});
}
return outputs;
}