Ну вот к примеру
array.reduce((p, item) => {
return p.then ( () => {
return async_something( item );
});
}, Promise.resolve ());
Создаем цепочку асинк вызовов
так работает, но ты по сути внутри редьюса просто создал цепочку, а уже потом начал её выполнение
я думал у тебя есть способ внутри редьюса ждать выполнения асинк функции