javascript 循环显示延迟

发布于 2024-09-10 03:59:31 字数 188 浏览 8 评论 0原文

简单的例子:

for (var i = 0; i < 10; ++i) {
  console.log(i); // <--- should be show with delay in 300ms 
}

简单的 setTimeout 使用当然不起作用......我想应该使用闭包..

Simple example:

for (var i = 0; i < 10; ++i) {
  console.log(i); // <--- should be show with delay in 300ms 
}

Simple setTimeout using of course doesn't work... I guess there's should be using closures..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

哭了丶谁疼 2024-09-17 03:59:31

编写递归函数很简单:

function display(i)
{
  if (i == 10) return;    
  setTimeout(function(){ console.log(i); display(i+1); }, 300);
}

It's a simple matter of writing a recursive function:

function display(i)
{
  if (i == 10) return;    
  setTimeout(function(){ console.log(i); display(i+1); }, 300);
}
好菇凉咱不稀罕他 2024-09-17 03:59:31

应该做的工作:

for (var i = 0; i < 10; ++i) {
  (function(i) {
     setTimeout(function(){console.log(i);}, i*300);
  })(i);
}

Should do the job:

for (var i = 0; i < 10; ++i) {
  (function(i) {
     setTimeout(function(){console.log(i);}, i*300);
  })(i);
}
浅浅淡淡 2024-09-17 03:59:31

您可以使用 setInterval,如下所示:

var i = 0;
var id = setInterval(function(){
    if (i == 9) clearInterval(id);
    console.log(i);
    i++;
}, 300);

此处示例 http://jsfiddle.net/MLWgG/2/

You could use setInterval, like so:

var i = 0;
var id = setInterval(function(){
    if (i == 9) clearInterval(id);
    console.log(i);
    i++;
}, 300);

Example here http://jsfiddle.net/MLWgG/2/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文