Задать вопрос

Как приостановить setInterval на время и снова продолжить tampermonkey?

У меня такая проблема: если выполняется условие то setinterval останавливается полностью, если выполняется else то нужно замедлить setinterval, то есть задержку поменять условно на 1000, но я не понимаю как это сделать. Если создать функцию sleep то это не особо удобно помогите пожалуйста
(function() {
    'use strict';
    let timerId = setInterval(() => {
    const text = document.querySelector('.Tag-module_content__uLsTI').textContent


    if(text.slice(0, -1)<(-52)){

        buy("ActionAnimatedSmallButtonZone_container__Gxja8 ActionAnimatedSmallButtonZone_desktop___1slH ActionAnimatedSmallButtonZone_type-cart__1GcmO");

        setTimeout(buy1,100);

        setTimeout(buy2,100);

        setTimeout(() => {
        clearInterval(timerId)
        console.log('Сработал clearInterval')
        }, 100)


    }
    else{
        rel();
        sleep(1000);
    }
    },150);
})();
  • Вопрос задан
  • 56 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
Останавливать всегда. Если условие не выполнилось, то снова запускать по таймауту 1000мс.
Ну и если интервал будет срабатывать только один раз, то можно использовать таймаут

let timerId;
const timer = () => {
    const text = document.querySelector('.Tag-module_content__uLsTI').textContent

    if(text.slice(0, -1)<(-52)){
        // ...payload
        console.log('Сработало условие');
        // Сработало, больше не требуется
    }
    else{
        rel();
        // Не сработало, запускаем снова через секунду
        timerId = setTimeout(timer, 1000);
    }
}

timerId = setTimeout(timer, 150);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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