Javascript SetInterval重新运行函数

Javascript SetInterval重新运行函数,javascript,Javascript,我有以下javascript函数: function One(){ setInterval(function(){ //piece of code },3000); setInterval(function(){ //piece of code },3000); setInterval(function(){ One(); },3000); } 如您所见,我希望第一段代码在3秒后执行,然后它跳到第二个setInterval并在3秒后运行内部代码,然后它跳到第三个se

我有以下javascript函数:

function One(){
    setInterval(function(){ //piece of code },3000);

    setInterval(function(){ //piece of code },3000);

    setInterval(function(){ One(); },3000);
}

如您所见,我希望第一段代码在3秒后执行,然后它跳到第二个setInterval并在3秒后运行内部代码,然后它跳到第三个setInterval重新运行整个函数,但它不工作…它运行第一段代码,第二段代码,在第三段,它不重新运行函数,而是继续执行第二段代码。

我想您应该改为
setTimeout
setInterval()
将反复调用它,每次调用
One()
时,您只希望它调用一次。然后,您可以将它们链接在一起,如下所示:

function One(){
    setTimeout(function(){ 
        //piece of code A

        setTimeout(function(){ 
            //piece of code B

            setTimeout(function(){ 
                One(); //restart
            },3000);

        },3000);

    },3000);
}

我想你应该改为
setTimeout
setInterval()
将反复调用它,每次调用
One()
时,您只希望它调用一次。然后,您可以将它们链接在一起,如下所示:

function One(){
    setTimeout(function(){ 
        //piece of code A

        setTimeout(function(){ 
            //piece of code B

            setTimeout(function(){ 
                One(); //restart
            },3000);

        },3000);

    },3000);
}

您可能需要setTimeout,而不是setInterval。这是一个异步问题。使用async.js库中的承诺或同步函数。如果您不小心,回调可能会在代码中造成混乱。您可能需要setTimeout而不是setInterval。这是异步问题。使用async.js库中的承诺或同步函数。如果您不小心,回调可能会在代码中造成混乱。太棒了,就是这样,只是一个小问题,第二个setTimeout调用代码的速度比第一个快…什么意思
调用代码的速度比第一个快
?别担心,我的代码有问题,谢谢lot@PetruLebada当然可以确保将问题标记为已回答,以便看到此问题的其他人知道此问题已回答您的问题。太棒了,就是这样,只是一个小问题,第二个setTimeout调用代码的速度比第一个快…什么意思
调用代码的速度比第一个快,谢谢lot@PetruLebada当然可以确保将问题标记为已回答,以便看到此问题的其他人知道此问题已回答您的问题。