Я сделал пример образца на Meteor.setTimeout()
, используя 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
});
}
'Meteor.setTimeout' необходимо только на сервере, потому что код сервера должен работать в волокне. На клиенте нет волокон, поэтому вы можете просто использовать обычный глобальный 'window.setTimeout'. Тем не менее, вы должны передать объект функции, как отметил @Tobold. – sbking