Javascript jqueryeach-每X秒一次?
我有一系列的身份证,我将通过拉威尔的《雄辩》返回 e、 g 这些表示表中的ID,然后我使用这些ID调用路由Javascript jqueryeach-每X秒一次?,javascript,jquery,json,Javascript,Jquery,Json,我有一系列的身份证,我将通过拉威尔的《雄辩》返回 e、 g 这些表示表中的ID,然后我使用这些ID调用路由 /get_single_item/{id} 我想要的是每X秒移动一次数组,每次调用single_item页面 目前: $.each(data, function(value) { console.log( value ); }); 一次输出所有值当然,我如何才能每X秒只获得一个值,然后在结束时从开始处重新开始一次?如果希望它永远打印,这是使用递归函数的一种方法:) (修订答案) 其
/get_single_item/{id}
我想要的是每X秒移动一次数组,每次调用single_item页面
目前:
$.each(data, function(value) {
console.log( value );
});
一次输出所有值当然,我如何才能每X秒只获得一个值,然后在结束时从开始处重新开始一次?如果希望它永远打印,这是使用递归函数的一种方法:) (修订答案) 其实很简单:
- 维护当前索引变量
- 使用
递增和钳制变量,并使用相应的数组元素setInterval()
var数组=[0,1,4,6,8,9],当前=-1;
setInterval(函数(){
电流+=1;
当前%=数组长度;
log(“回调项#“+current+”,其值为“+array[current]);
}, 2000);代码>
队列运行器
我制作了一个小型库,用于在特定队列中运行一组函数
您可以将其用于您的特定案例,如下所示:
使用
图书馆:
使用递归函数和timeout@RajaprabhuAravindasamyfiddle做的正是我想回答的:)@RajaprabhuAravindasamy我在追求这个,一旦它到达数组的末尾,就继续循环。
$.each(data, function(value) {
console.log( value );
});
function print_every_x_second(list, milliseconds) {
// Get the first value and remove it from array
var value = list.shift();
console.log(value);
// Put it back at the end.
list.push(value);
setTimeout('print_every_x_second(list, milliseconds)', milliseconds);
}
var list = [0, 1, 4, 6, 8, 9];
var milliseconds = 300;
print_every_x_second(list, milliseconds);
var arr = [1,2,3,4], i = 0;
var fn = function() {
// your business logic is separated from the iteration logic
if(i === arr.length) return;
console.log( arr[i++]);
};
// execute the queue every 1 second
queue([fn], 1000, /* repeat */ true)();
var queue = function(fn,timeout,repeat){
return function(){
var i = 0, f = fn[i], t = setInterval(function(){
f();
if(fn[i+1] !== undefined){
f = fn[++i];
}else{
if(repeat){
i=0;
f = fn[i];
}else{
clearInterval(t);
}
}
}, timeout);
}
}