【问题标题】:Object undefined- Javascript Meteor对象未定义 - Javascript Meteor
【发布时间】:2015-06-30 08:03:49
【问题描述】:

我已经修改了this existing countdown timer,以便我可以运行多个倒计时并使用会话以 HTML 格式显示计时器。 runCountdown 函数现在看起来像这样:

runCountdown(object, param, sessionName)

object 用于代替解决方案的var myCounterparam 用于倒计时。 sessionName 用于存储当前秒数以动态显示在浏览器中。

现在我想同时运行几个倒数计时器,因此在 Meteor 应用程序中我做了类似的事情

Meteor.call('doCount', function(error, result) {
  if ( !result < 1 ) {
    counters = new Array(result);
    var queryResult = ProductList.find().fetch();

    for (i = 0; i < counters.length; i++) {
      var diff = queryResult[i].expire - Math.floor(TimeSync.serverTime() / 1000);
      runCountdown(counters[i], diff, queryResult[i]._id);
    }
    console.log('testing from doCount ' + counters[0]);
  }
});

doCount 返回我想在浏览器中运行的倒数计时器的数量。

现在奇怪的是,我在 for 循环中的 runCountdown 函数工作正常,正如我从浏览器控制台看到的那样,这意味着 counters 变量正在使用这个函数。显然,我的主要目标不是记录该对象,而是显示undefined
为什么会这样?

runCountdown 函数

function runCountdown(obj,param,sessionName){
    obj = new Countdown({
        seconds:param,  // number of seconds to count down
        onUpdateStatus:
            function(sec){
                Session.set(sessionName,sec);
                console.log(Session.get(sessionName));
            }, // callback for each second
        onCounterEnd: function(){ alert('counter ended!');} // final action
    });

    obj.start();

}

【问题讨论】:

  • 可能您在不允许定义全局变量的严格模式下使用 javascript。
  • 我不确定 Javascript 严格模式是做什么的?以及如何改变它
  • 不,我没有使用严格模式。我刚刚想通了

标签: javascript meteor


【解决方案1】:

您希望将 obj 对象存储在外部可用,然后从 runCountdown 函数返回 obj 并将其存储在 counters[i] 数组项中。

function runCountdown(param,sessionName){
obj = new Countdown({
    seconds:param,  // number of seconds to count down
    onUpdateStatus:
        function(sec){
            Session.set(sessionName,sec);
            console.log(Session.get(sessionName));
        }, // callback for each second
    onCounterEnd: function(){ alert('counter ended!');} // final action
});

obj.start();
return obj;}

现在在您的数组结构中以以下方式存储此对象 -

counters[i] = runCountdown(diff, queryResult[i]._id);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-20
    • 2013-01-16
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多