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

Is it possible to call custom function with setTimeout Node.js

本文关键字:js 调用 自定义函数 Node setTimeout 可以使 是否      更新时间:2023-09-26

我想停止代码的执行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秒,但函数没有得到这个。CoringPossible,在这种情况下它是未定义的。

有点像。您不会看到执行在2秒钟内停止,因为您实际上是从setTimeout调用内部调用doTheMagicIfPossible

如果要将参数传递给传递给setTimeout的回调,则需要传入一个不带参数的函数,该函数为回调提供正确的参数。Javascript在Function的原型中提供了函数bind来实现这一点,例如:

setTimeout(this.doTheMagicIfPossible.bind(this, this.scoringPossible),2000);

这里,bind创建了一个不带参数的新函数,当调用该函数时,它将调用doTheMagicIfPossiblethis设置为相同的thisthis.scoringPossible作为第一个参数。