Предложу еще такой вариант поочередной отправки запросов...
const a = ['Иванов','Петров','Сидоров']
let act = start(a, myCb)()
act.next()
// Колбэк-функция для отслеживания запроса
function myCb(i) {
console.log(i)
act.next()
}
// Собственно замут для поочередной отправки запросов
function start(a, cb) {
return function* send() {
for (let i = 0; i < a.length; i++) {
yield myFetch(_ => cb(i))
}
}
}
// Эмуляция нативного fetch
function myFetch(cb) {
new Promise((resolve) => {
setTimeout(_ => {
cb()
resolve(true)
}, 2000)
})
}