私はgaragoorがまだ開いていると5分後に起動する警告機能を構築しようとしています。問題は、 "offen"の後にどのメッセージが来てもcleartimeoutは機能しないので、警告はすべての "offen"ステータスの後に実行されるということです。誰かが私にヒントを与えることができればnode.js clearTimeout()が動作しない
function handleGarageState(message) {
Status = message.toString();
garageState = message
io.emit('Garagenstatus', {
data: String(garageState)
});
var Eintrag = {
Datum: moment().format('YYYY-MM-DD HH:mm:ss'),
Status: Status
};
writeStatus(Eintrag);
if (Status == 'offen') {
var alert = setTimeout(function() {
console.log("ALERT "); //here will be the alert function
}, 60000 * 5)
} else {
clearTimeout(alert);
}
}
コードをさらに表示してください。どこからhandleGarageStateを呼び出しますか?どの範囲でアラートを定義していますか? – Adam
setTimeoutの前に別のclearTimeoutを追加するだけです。何かのようなものif(alert){clearTimeout(alert); } – KoIIIeY
私は変数ステートメント(現在編集中)とグローバル変数(var alert = "";)内にvariabelアラートを定義しようとしました – volker