Я работаю над проектом телеграммы бота, который имеет много общего с setTimeout. И в настоящее время моя проблема в том, что я не могу убрать тайм-аут, даже если я уже положил его на module.exports
.Узел JS - clearTimeout из предыдущего экземпляра или состояния
Это мой previous question.
Проблема в том, что всякий раз, когда я очищаю таймаут, он ничего не делает. Тайм-аут все еще продолжается.
Вот мой код, чтобы создать тайм-аут
var createSingleton = require('create-singleton');
var p3 = createSingleton(function mySingleton() {
service.canceledTimeout(res,bot)
});
var myInstance3 = new p3();
я получил модуль под названием обещает
module.exports.timeouts = []; //general.timeouts
И я поставил объект SetTimeout к этому модулю
canceledTimeout = function(res,bot) {
return general.timeouts.push(setTimeout(function() {
return updateState(general.THIRTY_SECONDS_REMAINING_CHECK_STATE, res)
.then (function(msg) {
if (msg !== null) {
return bot.sendMessage(res.chat.id, msg, general.baseFormat())
.then (function(x) {
setTimeout(function() {
updateState(general.TIMEOUT, res)
.then (function(msg) {
if (msg !== null) {
return bot.sendMessage(res.chat.id, msg, general.baseFormat());
}
});
},30000);
});
}
});
},90000));
}
Всякий раз, когда игра/room закончен, я вызываю эту функцию.
clearTimeout(general.timeouts);
Но, после того, как игрок снова создал комнату, тайм-аут по-прежнему работает.
Я думаю, проблема в том, что таймаут не очищается. Это с моей точки зрения.
Любая мысль или помощь будут оценены ребятами. Благодаря
привет человек, спасибо. сначала проверит его и обновит результат. cheers – Webster
mann, серьезно? вы вылечили мою головную боль только сейчас! Я добавил второй тайм-аут в массив. Спасибо, что потратили время, чтобы помочь мне. Я ценю это, отмечен! – Webster