setInterval内的自定义函数不起作用

时间:2013-12-25 22:47:57

标签: 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
        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(函数(){的console.log(相似性([” 测试”, “测试”]))},2000);

     

TypeError:String不是函数“

(指向相似的“s”)。

关于问题的任何想法?
非常感谢!

1 个答案:

答案 0 :(得分:3)

看起来你将函数结果保存在与函数(similarity)相同的变量中。这样你就可以覆盖上限范围的功能。 试试这个:

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