在每次迭代完成后迭代一个函数

时间:2017-03-16 04:23:29

标签: javascript callback promise iteration

我正在努力为一个函数编写一种方法来迭代多次,每次迭代之间暂停5秒。每次迭代都需要在下一次迭代开始之前完成。

我被告知Callback函数或Promises是可行的方法,但我对Javascript很新,并且编码时遇到了麻烦。

有人能帮助我吗?我们只是说有问题的函数被称为" Ineedhelp()"

由于

2 个答案:

答案 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