如何对函数进行延迟,但不';不要在Javascript中再次执行
我正在用Javascript制作一个射击游戏:玩家将射出一颗子弹,并在再次射出另一颗之前延迟2秒。我不知道怎么耽搁。使用如何对函数进行延迟,但不';不要在Javascript中再次执行,javascript,Javascript,我正在用Javascript制作一个射击游戏:玩家将射出一颗子弹,并在再次射出另一颗之前延迟2秒。我不知道怎么耽搁。使用setTimeout,它有一个延迟,但会自动调用该函数。有人能帮我吗?如果我理解这个问题,您需要一个系统来阻止调用函数,比如说shootBullet(),直到延迟完成。最简单的方法是使用全局变量和setTimeout: var canShoot = true; function shootBullet() { if (canShoot) { //Sho
setTimeout
,它有一个延迟,但会自动调用该函数。有人能帮我吗?如果我理解这个问题,您需要一个系统来阻止调用函数,比如说shootBullet()
,直到延迟完成。最简单的方法是使用全局变量和setTimeout
:
var canShoot = true;
function shootBullet() {
if (canShoot) {
//Shoot bullet
}
canShoot = false;
setTimeout(function() {
canShoot = true;
}, 2000);
}
如果我没有误解的话,在本例中,您需要一个名为“去盎司”的函数,如下所示:
function debounce(func, wait) {
let timeout;
return () => { //create closure
let context = this,
args = arguments;
let excuteFunction = () => {
func.apply(context, args)
}
clearInterval(timeout);
timeout = setTimeout(excuteFunction, wait);
};
}
当func是您的拍摄功能时,wait是延迟时间
你可以阅读更多关于去盎司技术的文章
或者您可以使用Lodash中的内置去盎司功能:请添加您当前的代码。非常感谢,这正是我需要的