cleatInterval () ne stoping setInterval () dans Node.js

voix
0

Je travaille sur facebook bot dans Node.js (nouveau à Node.js) et j'ai problème. Lorsque l'utilisateur envoie dernier message j'ai besoin de le détecter et le rappel ensemble (nous allons sÿ il devrait rappeler la personne en une minute)

if(!candidate.finished){
                clearTimeout(JSON.parse(candidate.timerId));
                var t = setTimeout(()=>{
                    candidate.timerId = JSON.stringify(t)
                    console.log(STRINGIFY  + candidate.timerId)
                    candidate.save();
                    sendQuickReplies(sender,Do you want to continue application process?,['Yes','No'],token);
                }, 60000);
 }

problème est que clearTimeout ne tue pas setTimeout lorsque l'utilisateur envoie un autre message (lorsque l'utilisateur envoie un autre message, cette fonction est appelée tout recommencer et shoutld arrêter la minuterie précédente et commencer à nouveau) Ce code remindes personne en une minute, mais il ne s'arrête rappeler

Créé 28/11/2017 à 00:18
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
0

Vous devez déclarer votre minuterie var t = setTimeout(() => {...}, 60000);avant d'appeler clearTimeoutet d' utiliser clearTimeoutla variable t. Dans l' extrait de code, clearTimeoutn'est pas référence à la variable de la minuterie t.

Donc, quelque chose comme cela devrait fonctionner à la place:

var t = setTimeout(() => {...}, 60000);
clearTimeout(t);

et votre minuterie 1 min sera annulée.

Dans le contexte de votre question, je suppose que vous voulez arrêter le chronomètre de rappel d'exécuter une fois que l'utilisateur vous a envoyé un message. Donc , vous avez juste besoin de garder une trace de votre variable de la minuterie tlorsque vous démarrez votre minuterie et une fois que le message requis est reçu, arrêtez cette temporisation tavec clearTimeout(t). De cette façon, la bonne référence à la minuterie sera arrêtée et l'utilisateur ne sera pas rappelé à plusieurs reprises.

Créé 12/01/2018 à 06:42
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more