Доброго времени суток. Как можно сделать синхронный цикл в node.js? У меня есть массив, по которому нужно поочередно пройтись и сделать некоторые асинхронные операции. Делаю так:
let items = [...];
items.forEach(async (item) => {
let doOne = await somethingFn(item);
let doTwo = await somethingFn2(item);
});
Однако forEach не ждет завершение текущей итерации и сразу же идет на следующую. Как выйти из ситуации? Решение "в лоб" вижу только написать рекурсивную функцию, что-то вроде:
let items = [];
(async function myFunction(i){
if(i >= items.length) { return; }
let doOne = await somethingFn(items[i]);
let doTwo = await somethingFn2(items[i]);
myFunction(i + 1);
})(0);
Однако мне такое решение не очень нравится + возможны какие-либо утечки памяти с рекурсивным подходом.