cleatInterval () není přestávám setInterval () v Node.js

hlasů
0

Pracuji na facebooku bot v Node.js (nové až Node.js) a mám problém. Když uživatel odešle poslední zprávu Musím ji a nastavit připomenutí detekovat (řekněme sy by mělo připomínat osobu za minutu)

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ém je v tom, že clearTimeout nezabíjejí setTimeout, když uživatel odešle další zprávu (pokud uživatel odešle další zprávu Tato funkce se nazývá znovu, a to shoutld zastavit předchozí časovač a začít nový) Tento kód remindes osoby za jednu minutu, ale to nezastaví připomínat

Položena 28/11/2017 v 00:18
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
0

Musíte deklarovat časovač var t = setTimeout(() => {...}, 60000);před voláním clearTimeouta použít clearTimeoutna proměnné t. Ve fragmentu kódu, clearTimeoutnení odkazování na proměnné časovače t.

Tak nějak by to mělo fungovat místo:

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

a vaše 1 min Časovač bude zrušen.

V souvislosti s vaší otázkou, myslím, že chcete zastavit časovač připomenutí z provádění jakmile uživatel vám poslal zprávu. Takže stačí jen sledovat své časovače proměnné tpři spuštění časovače, a jakmile obdrží požadované zprávy, nech toho časovač ts clearTimeout(t). Tak, správný odkaz na časovač se zastaví a uživatel nebude opakovaně připomínal.

Odpovězeno 12/01/2018 v 06:42
zdroj uživatelem

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