@dorohdds

Как досрочно завершить таймер и выполнить действие только один раз по событию?

При первом вызове или по истечению таймера все хорошо, но если вызвать несколько раз.. при попытке досрочно завершить таймер выполнится n-раз от кол-ва вызова
exports.run = (m1) => {
     var timer1 = setTimeout(function () {
        calculate()        
    }, 1000*5)
    m1.on('finish', function () {
        console.log(`таймер сброшен`);        
        clearTimeout(timer1)
        calculate()
    })
function calculate() { 
    // тут некоторые действия
}
  • Вопрос задан
  • 222 просмотра
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Поставьте счётчик на количество активных.
При вызове - прибавляете 1.
При останове - отнимаете 1.
И условие, контролирующее очередной запуск в зависимости от нужного количества.
Нужно только один - сравнение с единицей и т.д.
Ответ написан
Ваш ответ на вопрос

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

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