Я пытаюсь добавить задержку внутри цикла в Node.js. У меня есть массив и мне нужно вызвать функцию для каждого элемента массива. Подвох в том, что каждый такой вызов функции должен иметь промежуток в 30 секунд. Вот что я попробовал -
const cprRedshift = async (page) => {
let query = "select links from schema.table", links = [], ranks = []
let data = await redshiftSelect(query)
data.rows.forEach(element => {
links.push(element.links)
})
let hostnames = await getDomainNames(links)
// one way
for(let i = 0; i < hostnames.length; i++){
await setTimeout(async () => await checkPageRank(hostnames[i]), 30000)
}
// another way
let i = 0
while(i < hostnames.length){
await checkPageRank(page, hostnames[i])
setInterval(() => ++i, 30000)
}
}
checkPageRank
- это функция в том же скрипте, и мне нужно вызывать ее для всех элементов в массиве hostnames [], сохраняя интервал в 30 секунд между каждым вызовом. Любая идея о том, как этого добиться, будет оценена. Спасибо!