Javascript 是否可以使用setTimeout Node.js调用自定义函数

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

我想停止执行我的代码2秒,以便所有正在进行的动画可以完成。我正在尝试使用Node.js中的setTimeout调用函数

我在代码中所做的操作:

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
用于指以后可能已更改的