Javascript 是否可以使用setTimeout Node.js调用自定义函数
我想停止执行我的代码2秒,以便所有正在进行的动画可以完成。我正在尝试使用Node.js中的setTimeout调用函数 我在代码中所做的操作:Javascript 是否可以使用setTimeout Node.js调用自定义函数,javascript,node.js,Javascript,Node.js,我想停止执行我的代码2秒,以便所有正在进行的动画可以完成。我正在尝试使用Node.js中的setTimeout调用函数 我在代码中所做的操作: this.userActivity = function(a,b,side){ //some code of mine setTimeout(this.doTheMagicIfPossible(this.scoringPossible),2000); } this. doTheMagicIfPossible = function(p
this.userActivity = function(a,b,side){
//some code of mine
setTimeout(this.doTheMagicIfPossible(this.scoringPossible),2000);
}
this. doTheMagicIfPossible = function(passedValue){
console.log("printing it out after 2 seconds"+passedValue);
}
但是,执行在2秒钟内不会停止
如果我喜欢这个:
setTimeout(this.doTheMagicIfPossible,2000,this.scoringPossible);
执行停止了2秒,但函数没有得到。可能,在这种情况下它是未定义的。有点像。您没有看到执行停止2秒钟,因为您实际上是从
setTimeout
调用内部调用dothemagiciffailable
如果要将参数传递给传递给setTimeout
的回调函数,则需要传入一个不带参数的函数,该函数为回调函数提供正确的参数。Javascript在function
的原型中提供函数来实现这一点,例如:
setTimeout(this.doTheMagicIfPossible.bind(this, this.scoringPossible),2000);
这里,
bind
创建了一个新函数,不带任何参数,调用时将调用dothemagicifimable
,将this
设置为与this
相同的this.scoringmable
作为第一个参数;setTimeout(function(){me.dothemagiciffable(me.scoringable)},2000)其中me
用于指以后可能已更改的此
。