我不知道为什么我得到的调用堆栈超出了最大值,我也不知道它来自哪里。
感谢您的帮助!
函数attributeMissions:
function attributeMissions(missions) {
var start;
var date = new Date();
var length;
var position = 2.1;
var start;
if (date.getMinutes() > 480 && date.getMinutes() < 1320) {
var start = date.getMinutes();
}
if (locationMassage = !undefined) {
length = date.getMinutes() - start;
}
var x, y;
位置坐标:
var locationMassage = {
1: {
x: 2.101,
y: -0.3
},
2: {
x: 2.102,
y: -0.3
},
3: {
x: 2.103,
y: -0.3
},
4: {
x: 2.104,
y: -0.3
},
5: {
x: 2.105,
y: -0.3
},
6: {
x: 2.106,
y: -0.3
},
7: {
x: 2.107,
y: -0.3
},
8: {
x: 2.108,
y: -0.3
},
9: {
x: 2.106,
y: -0.3
},
10: {
x: 2.26,
y: -0.3
}
};
函数setInterval在5分钟后执行该函数:
setInterval(attributeMissions(start, length, 300000));
我想返回locationMassage的位置:
我认为我写的不正确
return {
locationMassage: 1
};
}
答案 0 :(得分:2)
setInterval(attributeMissions(start, length, 300000));
此代码立即调用attributeMissions,并将其传递给start,length和300000。attributeMissions返回的任何内容都将传递到setInterval中。因此,如果这行代码位于attributeMissions中(从您提供的示例中不清楚),那么attributeMissions将调用attributeMissions,后者将调用attributeMissions,依此类推,从而导致堆栈溢出。
您不想立即调用attributeMissions,而是想将一个函数传递给setInterval,如下所示:
setInterval(() => attributeMissions(start, length), 300000);