cleatInterval () node.js içinde setInterval () durdurulmalı değil

oy
0

Ben (node.js yeni) node.js facebook bot üzerinde çalışıyorum ve ben sorun var. kullanıcı bunu ve set hatırlatma algılamak gereken son ileti gönderdiğinde (en çok bir dakika içinde kişiyi hatırlatmalıdır sy let)

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

Sorun Bu kod bir dakika içinde kişiyi remindes ama alışkanlık hatırlatan durdurmak kullanıcı başka bir ileti gönderdiğinde (kullanıcı baştan bu fonksiyon çağrıldığını başka bir ileti gönderdiğinde ve önceki Sayacı durdurmak ve yeni bir başlangıç ​​shoutld) clearTimeout setTimeout öldürmek kalmamasıdır

Oluştur 28/11/2017 saat 00:18
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
0

Eğer zamanlayıcı beyan etmek gerek var t = setTimeout(() => {...}, 60000);aramadan önce clearTimeoutve kullanımı clearTimeoutdeğişkeni t. Kod snippet'inizde, clearTimeoutzamanlayıcı değişkeni başvurmuyor t.

Yani böyle bir şey yerine çalışması gerekir:

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

ve 1 dakika zamanlayıcı iptal edilecektir.

Sorunuzun bağlamda, kullanıcı sana bir mesaj gönderdi sonra yürütülmesini hatırlatma zamanlayıcı durdurmak istiyor herhalde. Yani sadece zamanlayıcı değişkenin takip etmek gerekir tEğer sayacını başlatmak ve gerekli mesajı alındıktan sonra, bu sayacı durdurmak zaman tile clearTimeout(t). Bu şekilde, zamanlayıcı doğru referans durdurulacak ve kullanıcı sürekli hatırlatılır edilmeyecektir.

Cevap 12/01/2018 saat 06:42
kaynak kullanıcı

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