У меня есть эта функция, которая печатает значения массива urls
, первое, что я хочу сделать, это запустить forloop неопределенно долго, а во-вторых, я не понимаю, почему журнал консоли 'done' выполняется передцикл:
loop = () => {
for (var i = 0; i < urls.length; i++) {
(function(index) {
setTimeout(function() {
console.log(urls[index]);
}, i * 1000);
})(i);
}
console.log('done');
};
Я пытался обернуть эту функцию в другой forloop, но каждый раз я получал (в этом примере) 3 значения, что не является моей целью, мне просто нужно повторить цикл.
for (var a = 1; a <= 3; a++) {
setTimeout(() => this.loop(), 21000);
}
// Not working ( the urls.length = 21 so that's exactly 21 seconds )
while (true) {
setTimeout(() => this.loop(), 21000);
}
// Freeze too much ram
Пожалуйста, кто-нибудь предложит лучший подход или поможет мне решить логику этого