Задать вопрос
@iliya2004
Верстальщик, программист, дизайнер

Как сделать цикл, который выполняется 1000мс?

Мне нужен цикл, который работает определённое количество времени, потом останавливается. Типа такого:
let qwq =0;
let wew =0;
setTimeout (wew=1, 1000);
while (wew!=0){
    qwq++;
}
console.log(qwq);

Но из-за этого браузер зависает
  • Вопрос задан
  • 156 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
@dimoff66
Кратко о себе: Я есть
Можно использовать performance.now
https://developer.mozilla.org/ru/docs/Web/API/Perf...

Он возвращает количество миллисекунд
Замеряете перед циклом, в цикле проверяете. Как только оно больше или равно 1000 останавливаете цикл.

Но если вы опишете зачем вам такой цикл, возможно лучше все сделать асинхронно промисом.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
ElForastero
@ElForastero
Для начала нужно определиться, для каких целей понадобилось создавать такой цикл, потому что подход изначально неверен.

В отличие от низкоуровневых языков, где при помощи цикла можно просто занять CPU на какое-то время и тем самым сделать своеобразную "задержку", в JavaScript это невозможно по ряду причин.

Если нужно отложить выполнение кода на определенное время (опять же, не точное, а приблизительное), тогда просто setTimeout:

setTimeout(() => console.log(qwq), 1000);
Ответ написан
@m1rvi
Попробуй так:
function example() {
... // твои там всякие действия.
}
setTimeout(() => {
    example();
}, 1000); //сколько секунд играет


Скажи для чего конкретно нужно
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы