cleatInterval () δεν φέτες setInterval () σε node.js

ψήφοι
0

Δουλεύω στο facebook bot στο 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