繁体   English   中英

javascript:如何在循环中创建缓慢的for ...

[英]javascript: how can I create a slow for…in loop

我正在建立自己的幻灯片。 我想遍历对象的成员,每次迭代之间都有明显的停顿。

使用setInterval,我想出了这个:

for (key in ob) {

setInterval(
    function (){
    console.log("Key:", key);
    console.log("Value:", ob[key]);
    }, 2000

        ) 

}

但是,这不起作用。 它会立即转储键/值对的日志,我期望每个操作之间会有间隔。

如何在每次操作之间都停顿的情况下进行迭代?

你根本不能那样做。

尝试这个:

var keys = Object.keys(ob);
var index = 0;
setInterval( function(){
    console.log( keys[index], ob[keys[index]] );
    index = ( index + 1 ) % keys.length;
}, 2000 );

http://jsfiddle.net/DgAPw/

一个例子,它不会滚动,而是在处理完所有事件后停止:

var keys = Object.keys(ob);
var index = 0;
var timer = setInterval( function(){
    console.log( keys[index], ob[keys[index]] );
    index++;
    if( index >= keys.length ) {
        clearInterval( timer );
    }
}, 2000 );

创建一个自召回超时,例如:

function slowLoop(){
   setTimeout(function(){
   // Do something

   slowLoop();
   }, 2000);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM