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工具查看:)