我想停止执行我的代码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秒,但功能没有得到这个。可能,在这种情况下它是未定义的。
答案 0 :(得分:1)
排序。您没有看到执行停止2秒,因为您实际上正在doTheMagicIfPossible
来电中呼叫setTimeout
。
如果要将参数传递给传递给setTimeout
的回调,则需要传入一个不带参数的函数,该函数为回调提供正确的参数。 Javascript在Function
的原型中提供了bind
功能,例如:
setTimeout(this.doTheMagicIfPossible.bind(this, this.scoringPossible),2000);
在这里,bind
创建一个新函数,不带任何参数,调用时会调用doTheMagicIfPossible
并将this
设置为相同this
,this.scoringPossible
}作为第一个参数。