Не срабатывает метод вызываемый в таймере

var inc = 0
function setSitesList() {
    console.log("site #" + inc)
    console.log(sites.length)
    if (sites.length == 0) return;
    for (var i = 0; i < sites.length; i++) {
        if (i > 999) break;
        sitesList.push(sites.shift())
    }
    var interval = sitesList.length
    for (var i = 0; i < interval; i++) {
        sitesList.shift()
    }
    inc++
}
async function checkArray(
) {
    if (sitesList.length == 0) {
        setTimeout(setSitesList, 2000)
    }
    await setTimeout(200 * Math.random());
}

Кусок кода с вызовом checkArray вырезан, не думаю что есть смысл его добавлять, там всё отрабатывает хорошо.

Не срабатывает метод в таймере, т.е по сути после того как в массив sitesList будет пустым, он должен запускать таймер и через некоторое время вызывать метод setSitesList, но почему-то не вызывает, сам таймер работает, но метод не вызывается.

Цель сделать такой метод, который бы удалял значения из одного массива, помещал их в другой, и была задержка, для повтора этого всего, пока в первом массиве не закончатся данные. Если делать без задержки, то всё получается, а вот с таймером не отрабатываем почему то, в чем может быть причина, помогите пожалуйста


Ответы (0 шт):