Node.js setInterval内的自定义函数不工作

Node.js setInterval内的自定义函数不工作,node.js,Node.js,我有一个函数,它接受一个数组,执行一些操作并返回一个数字。以下是一个被截断的版本: function similarity(phrases){ if(phrases.length ==2){ //Lots of stuff //concerning the phrases happen here // and a variable called similarity is produced which //contains a number

我有一个函数,它接受一个数组,执行一些操作并返回一个数字。以下是一个被截断的版本:

function similarity(phrases){
    if(phrases.length ==2){
    //Lots of stuff
    //concerning the phrases happen here
    // and a variable called similarity is produced which
    //contains a number
        return similarity;
    }else{
        throw "Can only find similarity between 2 phrases"; 
    }   
}
如果我单独调用这个函数,它会工作得很好。然而,如果我试图在setInterval内使用它,它就会抛出一个错误

setInterval(function(){console.log(similarity(["test","test"]))},2000);
预期结果是每2秒“1.00000”。而是打印一次“1.00000”,然后抛出此错误:

“setInterval(function(){console.log(相似性([“test”,“test”]))},2000年)

TypeError:字符串不是函数“

(指向相似性上的“s”)

有什么问题吗?

非常感谢

看起来您正在将函数结果保存在变量中,该变量的调用方式与函数相同(
相似性
)。通过这种方式,您将覆盖来自上层作用域的函数。 试试这个:

function similarity(phrases) {
    var similarity;
    /* ... */
}

看起来您正在以与函数相同的方式(
相似性
)调用变量来保存函数结果。通过这种方式,您将覆盖来自上层作用域的函数。 试试这个:

function similarity(phrases) {
    var similarity;
    /* ... */
}

看起来您正在以与函数相同的方式(
相似性
)调用变量来保存函数结果。通过这种方式,您将覆盖来自上层作用域的函数。 试试这个:

function similarity(phrases) {
    var similarity;
    /* ... */
}

看起来您正在以与函数相同的方式(
相似性
)调用变量来保存函数结果。通过这种方式,您将覆盖来自上层作用域的函数。 试试这个:

function similarity(phrases) {
    var similarity;
    /* ... */
}

在我的环境中工作很好。您是否尝试运行截断的代码并检查其是否正常工作?只是尝试运行截断/伪版本。同样的问题。在我的环境中工作很好。您是否尝试运行截断的代码并检查其是否正常工作?只是尝试运行截断/伪版本。同样的问题。在我的环境中工作很好。您是否尝试运行截断的代码并检查其是否正常工作?只是尝试运行截断/伪版本。同样的问题。在我的环境中工作很好。您是否尝试运行截断的代码并检查其是否正常工作?只是尝试运行截断/伪版本。同样的问题。是的,就是这样。我改了名字,但它的工作。谢谢!在将来尝试使用一些JS Lint工具,看看是否存在容易发现的问题:)是的,就是这样。我改了名字,但它的工作。谢谢!在将来尝试使用一些JS Lint工具,看看是否存在容易发现的问题:)是的,就是这样。我改了名字,但它的工作。谢谢!在将来尝试使用一些JS Lint工具,看看是否存在容易发现的问题:)是的,就是这样。我改了名字,但它的工作。谢谢!将来,如果没有容易发现的问题,请尝试使用一些JS Lint工具查看:)