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

szavazat
0

Dolgozom facebook bot node.js (új node.js) és én probléma. Amikor a felhasználó elküldi utolsó üzenetét i kell felismerni, és emlékeztető beállítása (mondjuk vkinek kell emlékeztetni személy egy perc alatt)

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éma az, hogy clearTimeout nem ölik meg setTimeout, amikor a felhasználó küld egy másik üzenetet (ha a felhasználó küld egy másik üzenetet ez a funkció kerül meghívásra újra és shoutld megáll előző időzítő és elkezd újat) Ez a kód remindes személy egy perc alatt, de ez szokás nem emlékezteti

A kérdést 28/11/2017 00:18
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
0

Be kell, hogy állapítsa meg a timer var t = setTimeout(() => {...}, 60000);a hívás előtt clearTimeout, és használja clearTimeouta változó t. Az a kódrészletet, clearTimeoutnem hivatkozik az időzítő változó t.

Szóval valahogy így kell működnie, hanem:

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

és az 1 perces időzítő törlődik.

Az összefüggésben a kérdést, azt hiszem, le akarja állítani az emlékeztető időzítő végrehajtson miután a felhasználó üzenetet küldött neked. Tehát akkor csak meg kell nyomon követni a timer változó t, amikor elindítja az időmérőt, és amint a kívánt üzenet érkezik, hagyja, hogy a timer taz clearTimeout(t). Így a helyes hivatkozás a időzítő leáll, és a felhasználó nem lesz emlékeztetett többször.

Válaszolt 12/01/2018 06:42
a forrás felhasználó

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