У меня есть массив объектов, и для каждого объекта мне нужно запустить асинхронную функцию и добавить значение к этому объекту в зависимости от того, что возвращает функция asyn c.
Моя проблема в том, что Promise.all возвращается, когда все мои обещания были выполнены, но до того, как условие в выражении then
каждого обещания имеет шанс обновить свой объект:
function addInlineImageToContentElements(elements) {
const newElements = elements;
const promiseArray = [];
if (newElements) {
newElements.forEach((el, i) => {
if (el.type === 'story' && !el.promo_items) {
getFirstInlineImage(el._id).then((firstInlineImage) => {
if (firstInlineImage) {
newElements[i].firstInlineImage = firstInlineImage;
}
});
promiseArray.push(getFirstInlineImage);
}
});
}
return Promise.all(promiseArray).then(() => newElements);
}
В результате newElements возвращается, прежде чем он получит шанс на обновление.