Как сделать так, чтобы функция повторялась через javascript с настраиваемым временем - PullRequest
0 голосов
/ 06 мая 2020

я хочу, чтобы этот код работал:

let wait = 1;

function speedup(){
  wait = 0.5
}

// I want it so that if the speed-up button is pressed the code repeats but faster
<html>
<body>
    <a onclick="speedup()">speed up</a>
    <p id="p">0</p>
</body>
</html>

Может кто поможет? Мне нужно использовать его для игры, где пользователь может нажать кнопку, чтобы ускорить длительный процесс для ig c.

1 Ответ

0 голосов
/ 06 мая 2020

Вы можете сделать что-то вроде:

let delay = 1000; // time in millisecond
let intervalId;

function speedUp() {
  delay = Math.max(0, delay - 100); // don't get negative time
  interval();
}

function interval() {
  // Clear existing interval
  if (intervalId) {
    clearInterval(intervalId);
  }

  intervalId = setInterval(() => {
    // run some code
  }, delay);
}

// Setup the first interval
interval();

// Call speedUp will cancel the previous setInterval, and start another one, 100msec faster
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...