exports.run = (m1) => {
var timer1 = setTimeout(function () {
calculate()
}, 1000*5)
m1.on('finish', function () {
console.log(`таймер сброшен`);
clearTimeout(timer1)
calculate()
})
function calculate() {
// тут некоторые действия
}
return; - это выход из любой внутренней функции. типа break для циклов. exports.run = (m1) => {
var kostil = 1
var timer1 = setTimeout(function () {
kostil -=1
if(kostil == 0) calculate()
}, 1000*5)
m1.on('finish', function () {
console.log(`таймер сброшен`);
clearTimeout(timer1)
kostil -=1
if(kostil == 0) calculate()
})
function calculate() {
// тут некоторые действия
} let commandFile = require(`./commands/${cmd}.js`)
commandFile.run() }, 1000*5, myvar1, myvar2, ...)exports.run = (m1) => {
var timer1 = setTimeout(function () {
calculate(timer1)
}, 1000*5)
m1.on('finish', function () {
console.log(`таймер сброшен`);
clearTimeout(timer1)
calculate() // зачем тут ещё раз вызов?
})
function calculate(t) {
// тут некоторые действия
clearTimeout(t);
} exports.run = (m1) => {
console.log(`Запуск таймера сбора данных`)
var timer1 = setTimeout(function () {
console.log(`Таймер закончился`)
calculate()
}, 1000*5)
m1.on('finish', function () {
console.log(`таймер сброшен`);
clearTimeout(timer1)
calculate()
})
function calculate() {
console.log(`Расчет`)
// тут некоторые действия
}Первый вызов:
Вызов команды
Запуск таймера сбора данных
таймер сброшен
Расчет
Второй вызов:
Вызов команды
Запуск таймера сбора данных
таймер сброшен
Расчет
таймер сброшен
Расчетm1.on('finish', function () {
console.log(`таймер сброшен`);
clearTimeout(timer1)
calculate()
})внутрь функции таймера, то при уничтожении, теоретически, должен убиваться и его листенер...var timer1 = setTimeout(function () {
m1.on('finish', function () {
console.log(`таймер сброшен`);
clearTimeout(timer1)
calculate()
})
console.log(`Таймер закончился`)
calculate()
}, 1000*5)