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小时阅读常见问题