我有一个简单的函数来显示控制台消息与项目名称。简单的像这样:for循环功能推迟
for(var i =0; i< array.length; i++)
child(array[i]);
var child = function(itemname){
console.log(itemname);
}
这里数组的长度是动态的,它包含的值也是动态的。现在我想在子函数内部添加一些动画,并且肯定希望它在第一次被for循环调用之前完成。
我知道如何使用jQuery Deferred,并可以在完成其他调用后调用一个函数,但在这里我不知道如何调用在for循环中使用它。我不确定这是否是在这里使用的正确选项。所以,我想要做的是,
for(var i =0; i< array.length; i++) //for example 3 times
{
child(i) //call child and pass the the value of i
wait till child function completes
}
所以,在我每一个增量,孩子函数将被调用,用于循环要等到孩子功能完成,然后再次调用子功能....直到条件得到满足。
我发现了一些具有$ .when.apply功能的解决方案,但无法确定如何使用它。任何文档,示例,参考,“阅读”文章将有所帮助!
编辑:我想,我不应该使用动画的例子。我的错。假设子函数进行ajax调用。现在,我想调用儿童功能i次,并希望循环等待每次让ajax调用完成后再调用它。这是我想多次调用的功能。没有链接。
难道它不等待已经完成?我的意思是据我所知,执行你的代码应该是线性的。因为在语句中将按顺序执行,并且每个语句将等待直到执行前一个语句。 – Zero 2014-10-22 07:29:18
我想不是,因为jQuery将对子函数进行异步调用,然后for循环将不会等待,直到子函数内部的动画完成。假设你在子函数内部有一个AJAX调用,并且你想调用这个子函数10次,并且希望for循环每次都等待让这个调用完成,然后再次调用子函数。我有道理吗? – sandiejat 2014-10-22 07:38:08