我的代码如下,它不会引发错误,但是在运行错误后会停止。

我尝试查看此代码并搜索文档,但找不到任何东西,可能是由于我的知识水平所致。

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

最佳答案

setInterval()的第一个参数是它必须定期调用的函数。

传递给setInterval()的第一个参数是调用loseTimeW(1)返回的值。但是loseTimeW()函数没有任何return,因此loseTimeW(1)的值是undefined

我想您的意图是每隔loseTimeW()毫秒用参数1调用1000。您可以轻松实现。 setInterval()接受两个或多个参数。调用它时,它将以第三个参数(如果有的话)开头的参数传递给回调(参数1)。

工作代码类似于:

var dataW = setInterval(loseTimeW, 1000, 1);


阅读有关setInterval()的更多信息。

10-04 15:37