Кажись, возникли некоторые проблемы, включающие асинхр/ждут с .reduce(), например так:JavaScript массив .reduce с асинхронной/Await
const data = await bodies.reduce(async(accum, current, index) => {
const methodName = methods[index]
const method = this[methodName]
if (methodName == 'foo') {
current.cover = await this.store(current.cover, id)
console.log(current)
return {
...accum,
...current
}
}
return {
...accum,
...method(current.data)
}
}, {})
console.log(data)
Объект data
регистрируется перед в this.store
.. не завершится .
Я знаю, что вы можете использовать Promise.all
с асинхронными петлями, но применимо ли оно к .reduce()
?
Спасибо за ваши советы в конце , Я закончил использовать только простой цикл для того, что я делал, и это были те же строки кода, но гораздо проще читать ... –
'initialValue'' reduce' не обязательно должен быть 'Promise ', однако, в большинстве случаев прояснить намерение. – EECOLOR
@EECOLOR Это должно быть. Мне очень не нравится «ждать», чтобы придать простое значение обещанию – Bergi