setInterval回调中的异常

时间:2014-11-19 01:14:23

标签: javascript meteor

我在调用回调函数之后遇到此错误:

function callbackInterval(test) {
   Meteor._debug("Test");
}
Meteor.setInterval(callbackInterval(test), 60000);

这是错误输出

Exception in setInterval callback: TypeError: undefined is not a function
at _.extend.withValue (packages/meteor/dynamics_nodejs.js:56)
at packages/meteor/timers.js:6
at runWithEnvironment (packages/meteor/dynamics_nodejs.js:108)

4 个答案:

答案 0 :(得分:1)

您需要传递setInterval函数引用(名称或匿名函数),而不是调用函数。

你想:

function callbackInterval(test) {
   Meteor._debug("Test");
}

Meteor.setInterval(function () {
    callbackInterval(test)
}, 60000);

如果您不需要传递callbackInterval参数,那么您就可以致电:

Meteor.setInterval(callbackInterval, 60000);

答案 1 :(得分:1)

如果仍然需要,或者对于需要它的人,正确的方法是:

function callbackInterval(test) {
  Meteor._debug("Test");
}
Meteor.setInterval(callbackInterval, 60000);

因为测试参数将被注入函数,但我不知道设置Interval是否会接收参数......

答案 2 :(得分:0)

您无法将参数设置为回调函数。请改用这样的匿名函数:

var callback = function ()  {
   callbackInterval(test)
   Meteor._debug("Test");
}
Meteor.setInterval(callbackInterval, 60000);

答案 3 :(得分:0)

如果要将参数设置为回调函数

您可以使用像

这样的参数调用回调函数
setInterval(function (){
        callbackInterval(test)
 }, 1000);