cleatInterval () no parando setInterval () en Node.js

votos
0

Estoy trabajando en facebook bot en Node.js (nuevos a Node.js) y tengo un problema. Cuando el usuario envía el último mensaje que necesito para detectarlo y recordatorio configurada (vamos a Sy se debe recordar a la persona en 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 es que clearTimeout no matan a setTimeout cuando el usuario envía otro mensaje (cuando el usuario envía otro mensaje de esta función se llama de nuevo y shoutld detener el temporizador anterior y empezar uno nuevo) Este código remindes persona en un minuto, pero no se detendrá recordando

Publicado el 27/11/2017 a las 21:18
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
0

Tiene que declarar su contador de tiempo var t = setTimeout(() => {...}, 60000);antes de llamar clearTimeouty utilizar clearTimeouten la variable t. En el fragmento de código, clearTimeoutno se hace referencia a la variable temporizador t.

Así que algo como esto debería funcionar en su lugar:

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

y el temporizador de 1 minuto se cancelará.

En el contexto de su pregunta, supongo que desea detener el temporizador recordatorio de ejecutar una vez que el usuario que ha enviado un mensaje. Por lo que sólo necesita hacer un seguimiento de la variable de temporizador tcuando se inicia el temporizador y una vez que el mensaje de información se reciba, deje que el temporizador tcon clearTimeout(t). De esa manera, la referencia correcta para el temporizador se detiene y el usuario no será recordado en varias ocasiones.

Respondida el 12/01/2018 a las 03:42
fuente por usuario

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