2013-03-08 58 views
0

为什么setInterval(fetchData(), 1000*60);在Chrome中运行时出现错误Firefox;我想将一个变量传递给fetchdata。解决Firefox在setInterval上抛出错误。

function fetchData(var) { 
     ..... 
    }; 

    fetchData(var); //run once 
    setInterval(fetchData(var), 1000*60); //then repeat 

堆栈跟踪:

[10:26:49.764] Error: useless setInterval call (missing quotes around argument?) 
[email protected]://localhost:8000/mainx.js:169 
[email protected]://localhost:8000/lib/angular.js:2809 
[email protected]://localhost:8000/lib/angular.js:2819 
@http://localhost:8000/lib/angular.js:4639 
applyDirectivesToNode/nodeLinkFn/<@http://localhost:8000/lib/angular.js:4218 
[email protected]://localhost:8000/lib/angular.js:117 
[email protected]://localhost:8000/lib/angular.js:4203 
[email protected]://localhost:8000/lib/angular.js:3851 
[email protected]://localhost:8000/lib/angular.js:3763 
bootstrap/</<@http://localhost:8000/lib/angular.js:932 
[email protected]://localhost:8000/lib/angular.js:7840 
[email protected]://localhost:8000/lib/angular.js:7920 
bootstrap/<@http://localhost:8000/lib/angular.js:930 
[email protected]://localhost:8000/lib/angular.js:2802 
[email protected]://localhost:8000/lib/angular.js:929 
[email protected]://localhost:8000/lib/angular.js:904 
@http://localhost:8000/lib/angular.js:14527 
p.Callbacks/[email protected]://localhost:8000/lib/jquery-1.8.2.min.js:2 
p.Callbacks/[email protected]://localhost:8000/lib/jquery-1.8.2.min.js:2 
[email protected]://localhost:8000/lib/jquery-1.8.2.min.js:2 
[email protected]://localhost:8000/lib/jquery-1.8.2.min.js:2 

回答

2

此语法不正确。你不能像这样使用setTimeout或setInterval传递变量。

setInterval(fetchData(var), 1000*60); //then repeat 

改为使用以下内容。

setInterval(function() { 
    fetchData(var); 
}, 1000*60); 
3

使用

setInterval(function() {fetchData(var)}, 1000*60); //then repeat 

你在做实际上并没有经过你的说法的。您需要将其包装在anonymous function中。

相关问题