arr.length) {
const result = await asyncFunction();
log.info(result);
}
я хочу переписать его вот на такой:
const promises = arr.map(() => asyncFunction().then(log.info));
await Promise.all(promises);
мне тут не нравится then.
Можно ли как-то по-другому это написать? 🤔
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Promise/allSettled
не подходит из-за ES2017
в Promise.all аргумент забыл передать
а нужно ли здесь вообще Promise.all?
почему бы и нет?
тут эта конструкция бесполезна, разве что за ней будет ещё код
в смысле бесполезна? зачем мне вызывать промисы последовательно, если я их могу все параллельно вызвать? Вместо логгера может быть и другой код
const promises = arr.map(async () => log.info(await asyncFunction()) ); await Promise.all(promises); Ну вот как вариант
ты не пользуешься результатом Promise.all, значит он бесполезен и вместо map можно ставить forEach
а разве async/await не будет выполнен до того, как попадет в Promise.all?
const promises = arr.map(() => asyncFunction()); (await Promise.all(promises)).map(result => log.info(result)); Или вот так даже
в этом случае функция же закончится до того, как все авэйты будут выполнены
тогда да, действительно надо Promise.all
вместо логгера может быть любой кусок кода зависящий от, к примеру, аргумента
Обсуждают сегодня