Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
循环中的多个Javascript延迟_Javascript_Jquery_Loops_Delay_Settimeout - Fatal编程技术网

循环中的多个Javascript延迟

循环中的多个Javascript延迟,javascript,jquery,loops,delay,settimeout,Javascript,Jquery,Loops,Delay,Settimeout,如何构建注释所示的功能 // for(x=0;x<10;x++) $('a[attr*="unique"]:first').attr('id', 'mysuperid1'); document.getElementById("mysuperid1").click(); // delay $("span:contains(action)").parent().click(); // delay $jq("a:contains(action)").attr('id', 'mysuperid

如何构建注释所示的功能

// for(x=0;x<10;x++)
$('a[attr*="unique"]:first').attr('id', 'mysuperid1');
document.getElementById("mysuperid1").click();
// delay

$("span:contains(action)").parent().click();
// delay

$jq("a:contains(action)").attr('id', 'mysuperid2');
document.getElementById("mysuperid2").click();
// delay

$('input[value="action"]').attr('id', "mysuperid3");
document.getElementById("mysuperid3").click();
// delay

// back to the top of loop

//for(x=0;x也许您可以将此方法用作模板,然后将所有任务划分为各自的函数

var delay = 1000;

function beginTasks(){
    taskOne();
}

function taskOne(){
    // Do something
    window.setTimeout(function(){
        taskTwo();
    }, delay);
}

function taskTwo(){
    // Do something else
    window.setTimeout(function(){
        beginTasks(); // <-- back to start
    }, delay);
}
var延迟=1000;
函数beginTasks(){
taskOne();
}
函数taskOne(){
//做点什么
setTimeout(函数(){
任务二();
},延误);
}
函数taskTwo(){
//做点别的
setTimeout(函数(){

beginTasks();//不能在Javascript中执行“睡眠”操作

但是,您可以使用节点模块(也可用于浏览器),它将为您提供一些漂亮的异步语法包装器,以帮助您处理setTimeout等异步函数

您的代码应类似于:

async.whilst( function ( ) {
    /* condition */
}, function ( whilstCallback ) {
    async.series( [
        function ( seriesCallback ) { /* action 1 */ seriesCallback( ); },
        window.setTimeout.bind( window, 1000 ),
        function ( seriesCallback ) { /* action 2 */ seriesCallback( ); },
        window.setTimeout.bind( window, 1000 ),
        /* ... */
    ], whilstCallback );
} );
看看jQuery的