cleatInterval () non stoping setInterval () in node.js

voti
0

Sto lavorando su facebook bot in node.js (nuove da node.js) e ho problemi. Quando l'utente invia ultimo messaggio ho bisogno di rilevare e impostare promemoria (diciamo Sy dovrebbe ricordare a persona in un minuto)

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);
 }

problema è che clearTimeout non uccidere setTimeout quando l'utente invia un altro messaggio (quando l'utente invia un altro messaggio di questa funzione è chiamata ancora una volta ed è shoutld arrestare il timer precedente e iniziare uno nuovo) Questo codice remindes persona in un minuto, ma non smetterà di ricordare

È pubblicato 28/11/2017 alle 00:18
fonte dall'utente
In altre lingue...                            


1 risposte

voti
0

È necessario dichiarare il timer var t = setTimeout(() => {...}, 60000);prima di chiamare clearTimeoute utilizzare clearTimeoutsulla variabile t. In snippet di codice, clearTimeoutnon fa riferimento la variabile del timer t.

Quindi, qualcosa come questo dovrebbe funzionare, invece:

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

e il vostro 1 min timer sarà disattivata.

Nel contesto della tua domanda, suppongo che si desidera interrompere il timer promemoria da eseguire una volta che l'utente ha inviato un messaggio. Quindi non vi resta che tenere traccia del vostro variabili timer tquando si avvia il timer e una volta ricevuto il messaggio desiderato, smettere di quel timer tcon clearTimeout(t). In questo modo, il riferimento corretto al timer sarà fermato e l'utente non sarà ricordato più volte.

Risposto il 12/01/2018 a 06:42
fonte dall'utente

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