我需要我的代码运行x次,然后暂停30秒左右才能恢复。有任何想法吗?

myslidefunction();
var tid = setInterval(myslidefunction, 1000);

function myslidefunction() {
    setTimeout(function () {
        //do stuff
    }, 400);
};

最佳答案

您可以保留运行计数,并使用normal_duration + 30000作为X +第一次的setTimeout延迟。

var runCount = 0, runsBeforeDelay = 20;
function myslidefunction(){

    // .. stuff

    runCount++;
    var delay = 0;
    if(runCount > runsBeforeDelay) {
        runCount = 0;
        delay = 30000;
    }
    setTimeout(myslidefunction, 400 + delay);
};

// start it off
setTimeout(myslidefunction, 1000);

09-25 15:51