Javascript 为什么使用Meteor.setInterval调用方法会引发TypeError异常?
我正在尝试使用Meteor.setInterval函数,但在使用时遇到了一些问题 这是我的密码:Javascript 为什么使用Meteor.setInterval调用方法会引发TypeError异常?,javascript,meteor,setinterval,Javascript,Meteor,Setinterval,我正在尝试使用Meteor.setInterval函数,但在使用时遇到了一些问题 这是我的密码: Meteor.methods({ init : function(){ console.log('test'); }, start : function(period){ console.log('start : period '+period); Meteor.setInterval(Meteor.call('init'),period); } });
Meteor.methods({
init : function(){
console.log('test');
},
start : function(period){
console.log('start : period '+period);
Meteor.setInterval(Meteor.call('init'),period);
}
});
Meteor.call('start', 100);
我在控制台中看到“test”1次,然后出现以下错误:
setInterval回调中出现异常:TypeError:undefined不是函数
我一直在研究这个问题:但我用了不同的方法(使用Method.methods
)
发生了什么以及如何修复它?请看这一行:
Meteor.setInterval(Meteor.call('init'),period);
现在试着想想引擎的功能。首先,Meteor.setInterval
。他需要的是:
- 回拨
- 毫秒数
Meteor.call('init')
。引擎看到您的调用
,并执行它,因为这是您要求他对括号所做的。你的电话什么也不回。然后,setInterval
尝试不执行任何操作
那么,如何将带有参数的函数传递给Meteor.setInterval?一种方法是将其包装在封口内:
Meteor.setInterval(function() {
Meteor.call('init');
}, period });
这样,您的调用
不会立即执行,它只在setInterval
使用回调时执行,然后回调执行您的调用
您还可以部分应用调用
。有两种方法:
Meteor.setInterval(Meteor.call.bind(null, 'init'), period);
Meteor.setInterval(Meteor.call('init'),period);
现在试着想想引擎的功能。首先,Meteor.setInterval
。他需要的是:
- 回拨
- 毫秒数
Meteor.call('init')
。引擎看到您的调用
,并执行它,因为这是您要求他对括号所做的。你的电话什么也不回。然后,setInterval
尝试不执行任何操作
那么,如何将带有参数的函数传递给Meteor.setInterval?一种方法是将其包装在封口内:
Meteor.setInterval(function() {
Meteor.call('init');
}, period });
这样,您的调用
不会立即执行,它只在setInterval
使用回调时执行,然后回调执行您的调用
您还可以部分应用调用
。有两种方法:
Meteor.setInterval(Meteor.call.bind(null, 'init'), period);
Meteor.setInterval(Meteor.call('init'),period);
现在试着想想引擎的功能。首先,Meteor.setInterval
。他需要的是:
- 回拨
- 毫秒数
Meteor.call('init')
。引擎看到您的调用
,并执行它,因为这是您要求他对括号所做的。你的电话什么也不回。然后,setInterval
尝试不执行任何操作
那么,如何将带有参数的函数传递给Meteor.setInterval?一种方法是将其包装在封口内:
Meteor.setInterval(function() {
Meteor.call('init');
}, period });
这样,您的调用
不会立即执行,它只在setInterval
使用回调时执行,然后回调执行您的调用
您还可以部分应用调用
。有两种方法:
Meteor.setInterval(Meteor.call.bind(null, 'init'), period);
Meteor.setInterval(Meteor.call('init'),period);
现在试着想想引擎的功能。首先,Meteor.setInterval
。他需要的是:
- 回拨
- 毫秒数
Meteor.call('init')
。引擎看到您的调用
,并执行它,因为这是您要求他对括号所做的。你的电话什么也不回。然后,setInterval
尝试不执行任何操作
那么,如何将带有参数的函数传递给Meteor.setInterval?一种方法是将其包装在封口内:
Meteor.setInterval(function() {
Meteor.call('init');
}, period });
这样,您的调用
不会立即执行,它只在setInterval
使用回调时执行,然后回调执行您的调用
您还可以部分应用调用
。有两种方法:
Meteor.setInterval(Meteor.call.bind(null, 'init'), period);
非常感谢你的好解释,它现在运行得很好:)非常感谢你的好解释,它现在运行得很好:)非常感谢你的好解释,它现在运行得很好:)非常感谢你的好解释,它现在运行得很好:)