NodeJS setInterval错误

时间:2015-05-27 10:20:05

标签: javascript node.js

阅读NodeJS书籍中的教程。它为我提供了尝试setInterval的代码:



var x = 0,
    y = 0,
    z = 0;

function displayValues() {
    console.log("X=%d; Y=%d; Z=%d", x, y, z);
}

function updateX() {
    x += 1;
}

function updateY() {
    y += 1;
}

function updateZ() {
    z += 1;
    displayValues();
}

setInterval(updateX, 500);
setInterval(updateY, 1000);
setInterval(updateZ, 2000);




它的工作原理就像它应该的那样。那么我试着制作我自己更简单的版本:



var x = 0;

function incrementX() {
    x++;
    console.log(x);
}

setInterval(incrementX(), 1000);




并且它不起作用。它在一秒钟后显示1,然后给我这个错误信息:



timers.js:265
    callback.apply(this, args);
            ^
TypeError: Cannot read property 'apply' of undefined




任何人都可以向我解释为什么第一个片段有效,但第二个片段不起作用?

1 个答案:

答案 0 :(得分:2)

请勿使用大括号language-c-inline

()

当您传递setInterval(incrementX, 1000); 时,实际上是传递了incrementX()返回的结果,而不是函数。 incrementX()incrementX期望的函数。