Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Loops_Asynchronous_Callback - Fatal编程技术网

JavaScript循环等待某个函数返回,然后执行下一个循环

JavaScript循环等待某个函数返回,然后执行下一个循环,javascript,loops,asynchronous,callback,Javascript,Loops,Asynchronous,Callback,我使用下面的代码等待,然后执行下一个循环: function loop() { setTimeout(function() { process_number(a[i]); i++; if (i < a.length) loop(); else { alert("done!"); } }, 5000); } 函数循环() {

我使用下面的代码等待,然后执行下一个循环:

function loop()
{
    setTimeout(function()
    {
        process_number(a[i]);
        i++;
        if (i < a.length)
            loop();
        else
        {
            alert("done!");
        }
    }, 5000);
}
函数循环()
{
setTimeout(函数()
{
工序编号(a[i]);
i++;
如果(i
我想改为像jQuery$。get回调函数在get complete时执行

$.get("test.cgi", { name: "John", time: "2pm" },
  function(data){
  alert("Data Loaded: " + data);
});

function loop()
{
    //where process_number executed complete, do next loop
    //process_number(a[i]);
    i++;
    if (i < a.length)
        loop();
    else
    {
        alert("done!");
    }
}
$.get(“test.cgi”,{name:“John”,time:“2pm”},
功能(数据){
警报(“数据加载:”+数据);
});
函数循环()
{
//当进程号执行完成时,执行下一个循环
//工序编号(a[i]);
i++;
如果(i

函数进程号执行时间不确定。

您可以向loop()函数添加回调参数,并在需要时执行它:

function loop(callback)
{
    //where process_number executed complete, do next loop
    //process_number(a[i]);

    if (callback) {
        callback();
    }
}

loop(function () {
    alert("continuing...");
});

基本上,您可以将函数名作为参数传递,然后通过参数名调用它,这同样适用于匿名函数:

function foo(x,callback)
{
    callback(x);
}

foo("hello",alert)
foo("hello",function(x){alert(x);});

过程_编号(a[i])处发生的情况?(如果不相关,您不应该包含它)并且
i
的第一个值是什么?过程编号(a[i])是过程数据函数,它非常重要。第一个值是0@AJAX3333221I的意思是“喜欢与问题无关”(我知道这对你很重要)。在这个网站上,你应该把你的代码缩减到更少的代码来重现问题。但是,并不是每个人在发帖前都花1小时阅读常见问题