我目前正在将setInterval用于另一个函数,以每秒将变量的分数提高1。变量达到10后,我希望停止增量,并清除间隔。
问题在于,当分数达到10时,间隔不会被清除。我仍然每隔1秒就获得一次“重置”的console.log。当我检出speechCounterInterval时,在console.log中显示“ undefined”似乎很奇怪。
这是启动间隔的功能。当我启动它时,它将计数器重置为0,然后运行间隔。
var speechTimeCounter = 0;
var speechCounterInterval;
function talkToMe() {
speechTimeCounter = 0;
var speechCounterInterval = setInterval(increaseSpeechTimeCounter, 1000);
openQuoteMenu();
var namePosition = stats.stage - 1;
var selectQuote = Math.floor(Math.random() * monNameList[namePosition].quotes.length);
var selectedQuote = monNameList[namePosition].quotes[selectQuote];
console.log(selectedQuote);
digiQuoteText.innerHTML = "\u0022" + selectedQuote + "\u0022";
}
这是增加分数的功能:
function increaseSpeechTimeCounter() {
if (speechTimeCounter < 5) {
speechTimeCounter += 1;
console.log(speechTimeCounter);
clearInterval(speechCounterInterval);
} else if (speechTimeCounter >= 5) {
console.log(speechTimeCounter + "Reset");
closeQuoteMenu();
clearInterval(speechCounterInterval);
return;
}
return;
}
谢谢!