我的代码在下面,它不会引发错误,但是在运行错误后会停止。
我尝试查看此代码并搜索文档,但由于我的知识水平,找不到任何东西。
var timeNumbers = ['count','working','resting'];
var amountData = {'count':0,'working':0,'resting':0};
function fromCount(){
if(timeVa['working'] == false) return;
var amountDataNo1 = Array.from(amountData);
var dataW = setInterval(loseTimeW(1),1000);
function loseTimeW(n){
if(amountDataNo1[timeNumbers[n]] == 0){
clearInterval(dataW);
timeVa['resting'] == true;
}else{
amountDataNo1[timeNumbers[n]]--;
}
}
}
答案 0 :(得分:2)
setInterval()
的第一个参数是它必须定期调用的函数。
您传递给setInterval()
的第一个参数是调用loseTimeW(1)
返回的值。但是loseTimeW()
函数没有return
的任何内容,因此loseTimeW(1)
的值为undefined
。
我想您的意图是每loseTimeW()
毫秒用参数1
调用1000
。您可以轻松实现这一目标。 setInterval()
接受两个或多个参数。它将在调用时将以第三个参数(如果有的话)开头的参数传递给回调(参数1)。
工作代码类似于:
var dataW = setInterval(loseTimeW, 1000, 1);
详细了解setInterval()
。