我正在努力为一个函数编写一种方法来迭代多次,每次迭代之间暂停5秒。每次迭代都需要在下一次迭代开始之前完成。
我被告知Callback函数或Promises是可行的方法,但我对Javascript很新,并且编码时遇到了麻烦。
有人能帮助我吗?我们只是说有问题的函数被称为" Ineedhelp()"
由于
答案 0 :(得分:1)
执行此操作的一个好方法是在函数结束时设置超时。例如,如果您希望它迭代5次,则以下代码将起作用。
var i = 0;
function iNeedHelp() {
i++;
alert('You\'ve been helped ' + i + ' times so far.');
if (i < 5) {
setTimeout(function(){iNeedHelp()}, 5000);
}
}
iNeedHelp();
答案 1 :(得分:0)
有很多方法可以做到这一点,但一种简单的方法是使用setInterval / clearInterval:
var maxIterations = 3;
var iterations = 0;
var msDelay = 5000;
iNeedHelp();
var interval = setInterval(iNeedHelp, msDelay);
function iNeedHelp() {
iterations++;
console.log("in iNeedHelp, iteration " + iterations);
if (iterations >= maxIterations) {
clearInterval(interval);
}
}
这将在maxIteration中设置多次运行iNeedHelp,每次调用之间暂停msDelay毫秒。
您可以在此处找到有关setInterval / clearInterval的其他信息:https://www.w3schools.com/jsref/met_win_setinterval.asp