在循环中执行setTimeout()仅在第一次迭代中生效

时间:2016-07-08 10:17:40

标签: javascript html settimeout

这是我的HTML文件: -

<!DOCTYPE html>
<html>
<head>
  <title>My Page</title>
  <script type="text/javascript">
    var stringArray = new Array();
    stringArray[0] = "Hi";
    stringArray[1] = "how";
    stringArray[2] = "are";
    stringArray[3] = "you?";
    var i = 0;
    while(i<stringArray.length)
    {
        setTimeout(print,3000,i);
        i++;
    }

    function print(k)
    {
        console.log(stringArray[k]);
    }

   </script>
</head>
</html>

这里我试图以3秒的间隔显示数组stringArray中的每个字符串。但是当页面加载时,仅在开始时有3秒的暂停,然后我的数组中的所有4个字符串一起显示。 setTimeout()似乎只是第一次生效。任何人都可以建议这里发生了什么,以及我需要做什么改变才能以3秒的间隔显示每个单独的字符串。

0 个答案:

没有答案