SetInterval によって返された値で clearInterval を呼び出すと、その値は null または未定義になります。
setInterval をクリアするために clearInterval を呼び出していますが、どうやら setInterval の値は同じままで、 clearInterval を呼び出した後でも変更されません。t は null または undefined であると想定されていますか? ここに私のコードスニペットがあります
var setIntervalId; // declared in global scope
//lined of code
function autorefresh() {
if (statesCount > 0) {
setIntervalId = setInterval(function() {
//lines of code
// calling some handler
}, 30000);
}
if (statesCount === 0) {
clearInterval(setIntervalId);
}
}
ご覧のとおり、30 秒ごとに setInterval 関数を呼び出しています。最初に呼び出されたときに setIntervalId に値が割り当てられますが、clearInterval を呼び出した後でも値は持続します。clearInterval を呼び出した後、null または undefined になる必要がありますか?null または undefined になる必要がある場合は、ここでどうすればよいですか。グローバル スコープで setIntervalId を定義しました。