@cedFlame

SetTimeout не работает внутри setInterval, как исправить?

У меня есть функция, которая при useState false включает интервал повторяющейся анимации с задержкой в 50мс но мне нужно чтобы игралась только часть анимации, поэтому внутри интервала у меня setTimeout но при активации функции интервал проигрывается один раз, если же убрать таймаут внутри то интервал заработает. Как это исправить?

const play = () => {
        if (!isActive){
            let interval = setInterval(function () {
                actions.CubeAction?.play()
                setTimeout(function () {
                    actions.CubeAction?.stop()
                },5000)
            },50)
        }
    }

    play()
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
szQocks
@szQocks
Так попроще будет ? надеюсь додумаешься что там и как работает и не нужно будет расписывать

let n = 0;
const interval = setInterval(() => {
  if(n == 5){
    clearInterval(interval);
    return;
  }
  
  ++n;
  let t = n;
  console.log(`вызов setInterval № ${t} спустя ${100}мс`)
   setTimeout(() => {
  console.log(`вызов setTimeout № ${t} спустя ${5000}мс`)
}, 5000)
}, 100)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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