cleatInterval () Node.js में setInterval () stoping नहीं

वोट
0

मैं Node.js (Node.js के लिए नया) में फेसबुक बॉट पर काम कर रहा हूँ और मैं समस्या है। उपयोगकर्ता अंतिम संदेश मैं इसे और अनुस्मारक सेट का पता लगाने की जरूरत है भेजता है (के एसवाई यह एक मिनट में व्यक्ति को याद दिलाना चाहिए)

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

समस्या उपयोगकर्ता किसी अन्य संदेश भेजे जाने पर कि clearTimeout setTimeout को मारने नहीं है (उपयोगकर्ता एक अन्य संदेश समारोह बुलाया जा रहा है फिर से भेजता है और यह पिछले टाइमर बंद करो और नया शुरू shoutld) यह कोड एक मिनट में व्यक्ति remindes लेकिन यह अभ्यस्त याद दिलाना बंद है

28/11/2017 को 00:18
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
0

आप अपने टाइमर घोषित करने के लिए की जरूरत है var t = setTimeout(() => {...}, 60000);इससे पहले कि आप कहते हैं clearTimeoutऔर प्रयोग clearTimeoutचर पर t। अपने कोड स्निपेट में, clearTimeoutटाइमर चर संदर्भित नहीं है t

तो कुछ इस तरह के बजाय काम करना चाहिए:

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

और अपने 1 मिनट टाइमर रद्द कर दिया जाएगा।

अपने प्रश्न के संदर्भ में, मैं तुम्हें क्रियान्वित एक बार उपयोगकर्ता आप एक संदेश भेजा है से अनुस्मारक घड़ी को रोकने के लिए चाहते हैं। तो तुम सिर्फ अपने टाइमर चर का ट्रैक रखने की जरूरत है tजब आप अपने टाइमर शुरू करने और एक बार आवश्यक संदेश प्राप्त होता है, कि टाइमर रोक tके साथ clearTimeout(t)। इस तरह से, टाइमर को सही संदर्भ बंद कर दिया जाएगा और उपयोगकर्ता बार-बार याद दिलाया नहीं किया जाएगा।

12/01/2018 को 06:42
का स्रोत उपयोगकर्ता

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