在javascript的迭代之间应用延迟for循环

是否可以使用jQuery或下划线对javascript for循环的连续迭代应用延迟? 我在我的页面上有一个for循环用于在用户满足某些条件时弹出咆哮通知,如果有多个条件,我想错开咆哮通知而不是同时弹出几个。 这是有问题的循环:

var badge_arr = response.split("Earned badge:"); //Start at 1 so I'm not getting everything before the first badge for(i = 1; i < badge_arr.length; i++){ responseStr += badge_arr[i]; //Create growl notification //badge info echoed back will be of the form //Earned badge: name: description: imgSource var badge_info = badge_arr[i].split(':'); var title = 'NEW BADGE UNLOCKED'; var text = 'You just unlocked the badge '+badge_info[0]+': '+badge_info[1]; var img = badge_info[2]; createGrowl(title, text, img); } 

 for(i = 1; i < badge_arr.length; i++){ (function(i){ setTimeout(function(){ responseStr += badge_arr[i]; //Create growl notification //badge info echoed back will be of the form //Earned badge: name: description: imgSource var badge_info = badge_arr[i].split(':'); var title = 'NEW BADGE UNLOCKED'; var text = 'You just unlocked the badge '+badge_info[0] + ': '+badge_info[1]; var img = badge_info[2]; createGrowl(title, text, img); }, 1000 * i); }(i)); } 

我更喜欢使用自动调用函数来接收多次迭代:

 (function loop(i) { setTimeout(function () { alert('hello world'); // your code if (--i) loop(i); // iteration counter }, 5000) // delay })(10); // iterations count