Node.js 原型中的setInterval,RangeError:超过最大调用堆栈大小
我的代码有问题。我正在尝试在new Tornament()的对象构造函数中启动间隔调用原型函数。但是node.js抛出错误:RangeError:超出了最大调用堆栈大小 当我不把计时器分配给比赛对象时,一切都很好。 var timer=setInterval();效果也不错 你能给我解释一下吗Node.js 原型中的setInterval,RangeError:超过最大调用堆栈大小,node.js,Node.js,我的代码有问题。我正在尝试在new Tornament()的对象构造函数中启动间隔调用原型函数。但是node.js抛出错误:RangeError:超出了最大调用堆栈大小 当我不把计时器分配给比赛对象时,一切都很好。 var timer=setInterval();效果也不错 你能给我解释一下吗 var Tournament = function() { var tournament = this; console.log("Creating new instance.");
var Tournament = function() {
var tournament = this;
console.log("Creating new instance.");
this.users = [];
this.state = 'waitingForPlayers';
this._id = generateId();
this.startTimer(6, tournament.startTournament);
};
Tournament.prototype.startTimer = function(time, timoutCallback) {
var tournament = this;
tournament.time = time;
tournament.timer = setInterval(function() {
tournament.time--;
console.log(Tournament.time);
if(tournament.time <= 0) {
clearInterval(tournament.timer);
timoutCallback();
};
}, 1000);
};
Tournament.prototype.startTournament = function() {
console.log("Tournament is starting.");
};
Edited:
I'm creating instance:
var tournament = new Tournament();
game.instances.push(tournament);
var=function(){
var=这个;
log(“创建新实例”);
this.users=[];
this.state='waitingForPlayers';
这个。_id=generateId();
此.startTimer(6,锦标赛.startTurnament);
};
Tournament.prototype.startTimer=函数(时间,timoutCallback){
var=这个;
时间=时间;
tournament.timer=setInterval(函数(){
比赛时间--;
console.log(锦标赛时间);
如果(Tornament.time您的var tornament=this;
符号是怎么回事?充其量,您会混淆类和实例。无论如何,您所显示的任何内容实际上都不会执行任何操作。问题是从尝试实例化tornament
开始的吗?什么是tornament.startTournament
ld不是this.startTurnament.bind(this)
?是的,当我尝试创建实例时,node.js抛出了一个错误。当我没有将setInterval引用分配给任何变量时,一切都正常工作。但是我需要分配停止此间隔的可能性。callbackTimeout也很好。您需要向我们显示StartTurnament
。或者这是的输入错误>startTimer
?锦标赛的原型,我已编辑此代码似乎没有问题(除了它应该是console.log(锦标赛.time)
),在浏览器中工作正常。