Javascript 使用setInterval()函数生成Pomotoro计时器

Javascript 使用setInterval()函数生成Pomotoro计时器,javascript,Javascript,我的代码如下,它不会抛出错误,但在运行错误后会停止 我试着查看这些代码并搜索文档,但找不到任何东西,可能是因为我的知识水平 var timeNumbers = ['count','working','resting']; var amountData = {'count':0,'working':0,'resting':0}; function fromCount(){ if(timeVa['working'] == false) return; var amountD

我的代码如下,它不会抛出错误,但在运行错误后会停止

我试着查看这些代码并搜索文档,但找不到任何东西,可能是因为我的知识水平

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()
函数不
返回任何内容,因此
loseTimeW(1)
的值是
未定义的

我猜您的意图是每隔
1000
毫秒用参数
1
调用
loseTimeW()
。你可以很容易地做到这一点
setInterval()
接受两个或多个参数。调用时,它将从第三个参数(如果有)开始的参数传递给回调(参数#1)

工作代码类似于:

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

阅读更多信息。

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

传递给
setInterval()
的第一个参数是调用
loseTimeW(1)
返回的值。但是
loseTimeW()
函数不
返回任何内容,因此
loseTimeW(1)
的值是
未定义的

我猜您的意图是每隔
1000
毫秒用参数
1
调用
loseTimeW()
。你可以很容易地做到这一点
setInterval()
接受两个或多个参数。调用时,它将从第三个参数(如果有)开始的参数传递给回调(参数#1)

工作代码类似于:

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

阅读更多信息。

您应该提供一个,而不是所有代码。重复:另一个重复:
setInterval()
的第一个参数是它必须定期调用的函数。您不向它传递函数,而是
未定义的
。您应该提供一个,而不是所有的代码。重复:另一个重复:
setInterval()
的第一个参数是它必须定期调用的函数。您不向它传递函数,而是
undefined
,或
setInterval(()=>loseTimeW(1),1000)@BenR。或者,
setInterval(新函数(){loseTimeW(1);},1000),或
setInterval(()=>loseTimeW(1),1000)@BenR。这样不行。