如何使程序等待按钮单击以转到方法中的下一个循环迭代?[JavaScript]

如何使程序等待按钮单击以转到方法中的下一个循环迭代?[JavaScript],javascript,pause,Javascript,Pause,我已经做了一个算法,其中有许多循环,我试图通过点击按钮逐步通过它。我需要能够在第一次单击按钮时只执行循环的一次迭代,然后在再次单击按钮时执行下一次迭代,依此类推,直到程序完成。我可以用JavaScript来完成吗?如果是这样,怎么做?一个简单的方法是使用承诺,并使用async/await 基本上,让你的按钮点击进入一个承诺解析器,你的等待函数可以通过 下面的例子 让waitForPressResolve; 函数waitForPress(){ 返回新承诺(resolve=>waitForPres

我已经做了一个算法,其中有许多循环,我试图通过点击按钮逐步通过它。我需要能够在第一次单击按钮时只执行循环的一次迭代,然后在再次单击按钮时执行下一次迭代,依此类推,直到程序完成。我可以用JavaScript来完成吗?如果是这样,怎么做?

一个简单的方法是使用承诺,并使用async/await

基本上,让你的按钮点击进入一个承诺解析器,你的等待函数可以通过

下面的例子

让waitForPressResolve;
函数waitForPress(){
返回新承诺(resolve=>waitForPressResolve=resolve);
}
const btn=document.querySelector('button');
函数btnResolver(){
如果(waitForPressResolve)waitForPressResolve();
}
异步函数doIt(){
btn.addEventListener('click',btnResolver);
对于(设c=1;c<10;c+=1){
控制台日志(c);
等待waitForPress();
}
btn.removeEventListener('click',btnResolver);
console.log('Finished');
}
doIt()

Do Next
应更新问题,以包括所需的行为、特定的问题或错误,以及重现问题所需的最短代码。是否正在寻找带有断点的调试器?或者它需要是网站上的一个按钮吗?单击按钮后,不要忘记再次删除事件侦听器,否则会泄漏memory@Bergi在上面的示例中,事件侦听器只添加一次。但这是一个很好的观点,特别是如果你在React应用程序中使用它,记得在卸载时删除事件,等等。我将更新以将删除放入。。