我有以下代码:
myList = [["one", "two", "three"], ["uno", "dos", "tres"], ["1","2","3"]]
myList.forEach(function (subList) {
setTimeout(function () {
console.log(subList);
}, 5000);
});
我认为每5秒,这应该输出myList
的每个元素,但是,不是迭代它只是等待五秒,然后一次输出三个子列表。
我该怎么做,所以它做了一个子列表,然后等了5秒,然后是下一个......
答案 0 :(得分:3)
你必须这样做
myList = [["one", "two", "three"], ["uno", "dos", "tres"], ["1","2","3"]]
myList.forEach(function (subList, i) {
setTimeout(function () {
console.log(subList);
}, 5000*(i+1));
});
自
setTimeout(function () {
console.log(subList);
}, 5000);
表示它将在至少5000ms之后打印subList,所有事件在5000ms后调用
5000 *(i + 1)将确保在5000ms,10000ms,15000ms之后调用它......