我有这样的代码:
$('li').each(function(){
var data = $(this).text();
requestFunction(data, function(status){
if ( status == 'OK' ) do stuff...
});
});
所以,我需要在使用函数“requestFunction()”之间做一些延迟。我怎么能这样做?希望这是可以理解的,谢谢。
答案 0 :(得分:26)
增加时间的setTimeout:
$('li').each(function(indexInArray){
var data = $(this).text();
setTimeout( function () {
requestFunction(data, function(status){
if ( status == 'OK' ) do stuff...
});
}, indexInArray * 500);
});
如果你遍历这些元素,我们想要增加超时,否则所有请求都会在没有延迟的情况下同时触发,但只有在我们的500毫秒超时后才会触发。
答案 1 :(得分:2)
如果您在each
循环中进行ajax调用,那么您可能希望同步运行ajax请求。
为此,您可以将ajax请求的async
属性设置为false
。
或者,您可能希望了解requestFunction
的回调。这将允许您在方法返回后运行代码,并且不需要任何超时等。
回调基本上是一种在代码末尾执行的方法。你基本上告诉你的功能,这是我希望你在完成工作后打电话的另一个功能。