gpt4 book ai didi

javascript - 在进入下一次迭代之前暂停循环并等待事件

转载 作者:行者123 更新时间:2023-11-28 03:17:31 25 4
gpt4 key购买 nike

全部:

我有一个循环,其中我有一个超时来尝试暂停迭代,而动画和声音在进入下一个迭代之前完成;但是;我发现当它遇到超时匿名函数并导致无限循环时, i 不会增加。这是代码:

var i = 0;

while (i < gamePattern.length - 1) {
console.log(i);
buttonAnimation(gamePattern[i]);
buttonSound(gamePattern[i]);
setTimeout(() => {
i++;
}, 400);
}

我正在考虑尝试用 promise 来设置它,但我不认为这实际上会像我一样暂停迭代。任何想法或想法将不胜感激。

谢谢,

凯文

最佳答案

始终使用let、const。 var 很旧并且容易出错。

使用带有 Promise 的 async/await 可以实现迭代之间的代码等待时间

const wait = (cb, time) => {
return new Promise(res => {
setTimeout(() => {
cb();
res();
}, time)
})
}

async function doSomeThing(){
let i = 0;

while(i < gamePattern.length-1){
console.log(i);
buttonAnimation(gamePattern[i]);
buttonSound(gamePattern[i]);
await wait(() => {i++;}, 400)
}
}
doSomeThing()

关于javascript - 在进入下一次迭代之前暂停循环并等待事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59509621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com