javascript - meteor 计时器中的 Meteor.setTimeout() 问题?

标签 javascript meteor

我在 Meteor.setTimeout() 上使用 Meteor 做了一个示例。在这个例子中我得到一个错误。我对此一无所知。所以请看下面的代码,错误并建议我怎么做?

错误:

Exception in setTimeout callback: TypeError: undefined is not a function
    at _.extend.withValue (http://localhost:3000/packages/meteor.js?8ec262df25783897eaad01255bc8bd1ca4e78b24:773:17)
    at http://localhost:3000/packages/meteor.js?8ec262df25783897eaad01255bc8bd1ca4e78b24:358:45
    at http://localhost:3000/packages/meteor.js?8ec262df25783897eaad01255bc8bd1ca4e78b24:801:22 

JS 代码:

   if (Meteor.isClient) 
{
  Meteor.setTimeout(Test("10"), 1000);
  Meteor.setInterval(Test1, 1000);

  Template.hello.greeting = function () 
  {
    return "Welcome to timerapp.";
  };

  Template.hello.events
  ({
    'click input' : function () 
    {
      // template data, if any, is available in 'this'
      if (typeof console !== 'undefined')
        console.log("You pressed the button");

        //Test();
    }
  });
}
function Test(x)
{
   console.log("*** Test() ***"+x);
}
function Test1()
{
   console.log("*** Test1() ***");
}
if (Meteor.isServer)
 {

  Meteor.startup(function ()
  {
    // code to run on server at startup
  });


}

最佳答案

问题是 setTimeout 需要一个函数作为第一个参数,但您传递的是评估 Test("10") 的结果,它是“未定义的”。

您可以通过将对 Test1 的调用包装在匿名函数中来解决此问题:

Meteor.setTimeout(function(){Test("10");}, 1000);

关于javascript - meteor 计时器中的 Meteor.setTimeout() 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21402544/

相关文章:

javascript - 隐藏和显示 HTML 表格中的内容

javascript - Kendo UI 网格始终从第 0 页开始

javascript - 仅对时间使用 Meteor autoform-b​​s-datetimepicker

mongodb - meteor 部署到 Galaxy MONGO_URL 必须在环境中设置

Meteor template.rendered - 为什么集合是空的?

javascript - 转换 :unchecked to prop ('checked' , 错误)

javascript - 不使用附加 SDK 的 Firefox 扩展中的 ContentScript

javascript - appendTo 没有将我的元素放在我想要的位置

javascript - 在 Meteor 中获取表单数据的更好方法是什么?

javascript - 在 Meteor 集合中具有一致的客户端 session ID