Javascript 在每个i=i+;1.
我有一个Javascript 在每个i=i+;1.,javascript,Javascript,我有一个for循环,它创建了一个数字1-40的数组。当用户按下向上或向下键时,数字通过i++和i--增加或减少 出于某种原因,这很有效,每个数字都以稳定的速度变化——但它比我想要的快了一点,我不知道如何操作它 是否有JavaScript方法使i=i+1停止几毫秒,然后在每次迭代中重复?函数延迟(ms){return new Promise((resolve,reject)=>setTimeout(resolve,ms))} (异步()=>{ 对于(var i=0;ifunction delay(
for
循环,它创建了一个数字1-40的数组。当用户按下向上或向下键时,数字通过i++
和i--
增加或减少
出于某种原因,这很有效,每个数字都以稳定的速度变化——但它比我想要的快了一点,我不知道如何操作它
是否有JavaScript方法使i=i+1停止几毫秒,然后在每次迭代中重复?函数延迟(ms){return new Promise((resolve,reject)=>setTimeout(resolve,ms))}
(异步()=>{
对于(var i=0;ifunction delay(ms){return new Promise((resolve,reject)=>setTimeout(resolve,ms))}
(异步()=>{
对于(var i=0;iCiao),您可以编写如下内容:
function wait() {
return new Promise(resolve => {
setTimeout(() => {
resolve();
}, 1000); // lets say wait one second
});
}
然后单击函数,您可以调用:
async buttonClick = () = {
await wait();
// increase value and do stuff
};
再见,你可以这样写:
function wait() {
return new Promise(resolve => {
setTimeout(() => {
resolve();
}, 1000); // lets say wait one second
});
}
然后单击函数,您可以调用:
async buttonClick = () = {
await wait();
// increase value and do stuff
};
您可以选中save press time to global variable,如press time=new Date();
,并选中与当前时间的差异,如new Date()-按time
它将返回以毫秒为单位的差值,因此请使用所需的时间间隔。如果该时间间隔大于所需时间,则更新该值,同时按time
在下面试试
document.getElementById('input')。onkeydown=keydown;
设i=0;
按time=新日期();
功能键控(e){
如果((e.keyCode='38'| | e.keyCode==''40')&&new Date()-按time>1000){
e、 keyCode==“38”?i++:i--;
按时间=新日期();
document.getElementById('input')。value=i;
}
}
您可以选中save press time to global variable,如press time=new Date();
并将与当前时间的差异检查为new Date()-按time
它将返回以毫秒为单位的差值,因此请使用所需的时间间隔。如果该时间间隔大于所需时间,则更新该值,同时按time
在下面试试
document.getElementById('input')。onkeydown=keydown;
设i=0;
按time=新日期();
功能键控(e){
如果((e.keyCode='38'| | e.keyCode==''40')&&new Date()-按time>1000){
e、 keyCode==“38”?i++:i--;
按时间=新日期();
document.getElementById('input')。value=i;
}
}
请也添加代码。您是否尝试使用setTimeout(()=>{i=i+1;},time);
时间(毫秒)(2000=2s)好吧,因为您没有代码,我只需注释-编写一个函数来进行递增,并使用SetInterval或setTimeout调用它(请参阅哪一个更适合您的情况)。这应该行。@NinaScholz我正在尝试如何添加代码。这实际上比我发布的要复杂得多,因为这是一个用Phaser制作的游戏。基本上,我有一个精灵,它以增量方式跟随其他精灵数组的位置。@Kardon63是的,当我用5000毫秒尝试时,程序会等待5秒秒,然后正常运行。我需要它增加1,等待5秒,再次增加1,等待5秒,等等。请同时添加代码。是否尝试使用setTimeout(()=>{I=I+1;},time);
time(2000=2s)好吧,因为您没有代码,所以我将只注释-编写一个函数来执行递增操作,并使用SetInterval或SetTimeout调用它(请参阅哪个更适合您的情况)。这应该行。@NinaScholz我正在尝试如何添加代码。这实际上比我发布的要复杂得多,因为这是一个用Phaser制作的游戏。基本上,我有一个精灵,它以增量方式跟随其他精灵数组的位置。@Kardon63是的,当我用5000毫秒尝试时,程序会等待5秒秒,然后表现正常。我需要它增加1,等待5秒,再次增加1,等待5秒,等等。