Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 循环内的setTimeout一次给出所有迭代_Javascript - Fatal编程技术网

Javascript 循环内的setTimeout一次给出所有迭代

Javascript 循环内的setTimeout一次给出所有迭代,javascript,Javascript,我有以下代码: myList = [["one", "two", "three"], ["uno", "dos", "tres"], ["1","2","3"]] myList.forEach(function (subList) { setTimeout(function () { console.log(subList); }, 5000); }); 我认为每5秒钟,它应该输出myList的每个元素,而不是迭

我有以下代码:

myList = [["one", "two", "three"], ["uno", "dos", "tres"], ["1","2","3"]]    

    myList.forEach(function (subList) {
        setTimeout(function () {
            console.log(subList);
        }, 5000);
    });
我认为每5秒钟,它应该输出
myList
的每个元素,而不是迭代,它只是等待5秒钟,然后立即输出三个子列表

我该怎么做呢?它会生成一个子列表,然后等待5秒,然后下一个…

你必须这样做

myList=[[1]、[2]、[3]、[uno]、[dos]、[tres]、[1]、[2]、[3”]
myList.forEach(函数(子列表,i){
setTimeout(函数(){
console.log(子列表);
},5000*(i+1));
});您必须执行以下操作

myList=[[1]、[2]、[3]、[uno]、[dos]、[tres]、[1]、[2]、[3”]
myList.forEach(函数(子列表,i){
setTimeout(函数(){
console.log(子列表);
},5000*(i+1));

});好,那么你是说“计数器”不会在每次迭代时重置?我认为,如果您在
forEach
中进行迭代,每次输入setTimeout时,5000计数器应该从零开始……请注意,这将一次“调度”所有函数。这可能适用于您,但取决于所需的行为。是的,每个计数器都从0Ok开始,所以您是说“计数器”不会在每次迭代时重置?我认为,如果您在
forEach
中进行迭代,每次输入setTimeout时,5000计数器应该从零开始……请注意,这将一次“调度”所有函数。这可能适用于您,但取决于所需的行为。是,每个计数器从0开始