Всем привет!
Перебираю массив с объектами и в зависимости от одного из значений, делаю либо асинхронный запрос на сервер, либо добавляю другое значение в результирующий массив. Немного встрял с асинхронностью, мне нужно, чтобы в массиве
result
был тот же порядок, что и в
arr
. А у меня получается, что все асинхронные результаты уходят в конец, как это исправить?
const arr = [
{k: true, id: 1},
{k: false, id: 2},
{k: false, id: 3},
{k: true, id: 4},
{k: false, id: 5},
{k: false, id: 6},
{k: true, id: 7}
];
const result = [];
arr.forEach(async ({ k, id }) => {
if (k) {
await api.getData(id).then((response) => {
result.push(response);
})
} else {
result.push(id);
}
})