Увеличивает значение setInterval динамически - PullRequest
0 голосов
/ 15 апреля 2020
<script>
let increment = 0;
const interval = 1000;
let delay = () => {


    increment += 1;
    return interval * increment;


};

setInterval(
    () => console.log('Hello World. ' + delay() / 1000),

    delay()
);
</script>

Что я здесь не так делаю, хотя в консоли каждый раз я вижу приращение значения, но почему оно не задерживает вывод консоли по сравнению с шагом?

Есть ли возможность изменить интервал напрямую с использованием одной строки кода без написания дополнительной функции?

Спасибо!

1 Ответ

0 голосов
/ 15 апреля 2020

setInterval - 2-й параметр занимает количество секунд. Таким образом, поскольку вы изначально звоните delay(), он вернет 1000 в первый раз и будет использовать его в качестве интервала.

Если вы хотите каждый раз менять интервал, вам придется звонить clearInterval и звонить setInterval снова.

https://www.w3schools.com/jsref/met_win_setinterval.asp

https://www.w3schools.com/jsref/met_win_clearinterval.asp

let increment = 0;
const interval = 1000;
let delay = () => {


    increment += 1;
    console.log(interval + ", " + increment);
    return interval * increment;


};

setInterval(
    () => console.log('Hello World. ' + delay() / 1000),

    delay()
);
...