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

stemmen
0

Ik ben bezig met facebook bot in node.js (nieuw voor node.js) en ik heb probleem. Wanneer de gebruiker laatste bericht ik nodig om het en stel herinnering detecteren stuurt (laten we sy moet persoon herinneren in één minuut)

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

probleem is dat clearTimeout niet setTimeout doden wanneer de gebruiker een ander bericht stuurt (wanneer de gebruiker een ander bericht deze functie wordt opgeroepen weer helemaal opnieuw verstuurt en het shoutld stoppen vorige timer en start nieuwe) Deze code remindes persoon in een minuut, maar het zal niet stoppen herinneren

De vraag is gesteld op 28/11/2017 om 00:18
bron van user
In andere talen...                            


1 antwoorden

stemmen
0

U moet uw timer verklaren var t = setTimeout(() => {...}, 60000);voordat u belt clearTimeouten het gebruik clearTimeoutvan de variabele t. In de code snippet, clearTimeoutwordt niet verwijzen naar de timer variabele t.

Dus zoiets als dit zou moeten werken in plaats:

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

en je 1 minuut timer wordt geannuleerd.

In de context van uw vraag, ik veronderstel dat je wilt dat de herinnering timer te stoppen van het uitvoeren zodra de gebruiker een bericht heeft gestuurd. Dus je hoeft alleen maar om bij te houden van uw timer variabele houden twanneer u uw timer te starten en zodra het gewenste bericht wordt ontvangen, stoppen die timer tmet clearTimeout(t). Op die manier zal de juiste verwijzing naar de timer worden gestopt en de gebruiker zal niet herhaaldelijk worden herinnerd.

antwoordde op 12/01/2018 om 06:42
bron van user

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