如何在jQuery.each函数的每个循环之间进行延迟?

Ax.*_*Ax. 9 javascript each jquery delay

我有这样的代码:

$('li').each(function(){
   var data = $(this).text();
   requestFunction(data, function(status){
       if ( status == 'OK' ) do stuff...
   });
});
Run Code Online (Sandbox Code Playgroud)

所以,我需要在使用函数"requestFunction()"之间做一些延迟.我怎么能这样做?希望它可以理解,谢谢.

Joe*_*Joe 26

setTimeout在增加的时间:

$('li').each(function(indexInArray){
   var data = $(this).text();
   setTimeout( function () {
       requestFunction(data, function(status){
           if ( status == 'OK' ) do stuff...
       });
   }, indexInArray * 500);
});
Run Code Online (Sandbox Code Playgroud)

如果你遍历这些元素,我们想要增加超时,否则如果没有延迟,所有请求都会同时触发,但仅在我们的500毫秒超时之后.

  • 时间开始:0毫秒
  • 第一次请求:0 ms(500*0)
  • 第二次请求:500毫秒(500*1)
  • 第三次请求:1000毫秒(500*2)