cleatInterval () nu stoping setInterval () în node.js

voturi
0

Sunt de lucru pe bot de Facebook în node.js (noi la node.js) și am o problemă. Atunci când utilizatorul trimite ultimul mesaj am nevoie să-l și setați memento detecta (să SY aceasta ar trebui să reamintească persoană într-un minut)

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 este că clearTimeout nu ucid setTimeout atunci când utilizatorul trimite un alt mesaj (atunci când utilizatorul trimite un alt mesaj această funcție este chemat peste tot din nou și shoutld opri cronometrul anterior și începe unul nou) Acest cod remindes persoană într-un minut, dar nu se va opri amintindu-

Întrebat 28/11/2017 la 00:18
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
0

Ai nevoie să declare cronometrul var t = setTimeout(() => {...}, 60000);înainte de a apela clearTimeoutși de a folosi clearTimeoutpe variabila t. În fragmentul de cod, clearTimeoutnu este cu referire la variabila temporizator t.

Deci, ceva de genul asta ar trebui să funcționeze în schimb:

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

și cronometrul 1 min va fi anulată.

În contextul întrebării dvs., am să presupunem că doriți să opriți cronometrul memento de executare de îndată ce utilizatorul v - a trimis un mesaj. Deci , trebuie doar să urmăriți variabilei cronometru tatunci când porniți cronometrul și o dată mesajul necesar este primit, oprește cronometrul tcu clearTimeout(t). În acest fel, referința corectă a timer - ul va fi oprit , iar utilizatorul nu va fi amintit în mod repetat.

Publicat 12/01/2018 la 06:42
sursa de către utilizator

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