【发布时间】:2015-06-30 08:03:49
【问题描述】:
我已经修改了this existing countdown timer,以便我可以运行多个倒计时并使用会话以 HTML 格式显示计时器。 runCountdown 函数现在看起来像这样:
runCountdown(object, param, sessionName)
object 用于代替解决方案的var myCounter。 param 用于倒计时。 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