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

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

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

Но из-за этого браузер зависает
  • Вопрос задан
  • 114 просмотров
Решения вопроса 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
@m1rvi
Отметь блин решением, если помог
Попробуй так:
function example() {
... // твои там всякие действия.
}
setTimeout(() => {
    example();
}, 1000); //сколько секунд играет


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

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

Войти через центр авторизации
Похожие вопросы