【发布时间】:2022-12-05 19:24:20
【问题描述】:
我想用不同的参数多次调用函数example,同时在logic 中使用setTimeout。我希望这是顺序的(在第一个调用完成后,第二个调用可以开始,依此类推)。在下面的代码 sn-p 中,example 似乎逐个元素遍历两个数组:
let arr1 = [1, 2, 3];
let arr2 = [4, 5, 6];
function logic(i, arr) {
setTimeout(() => {
console.log(arr[i]);
}, (i + 1) * 300);
}
function example(arr) {
for (var i = 0; i < arr.length; i++) {
logic(i, arr);
}
}
setTimeout(() => {
example(arr1)
}, 3000);
setTimeout(() => {
example(arr2)
}, 3000);
1
4
2
5
3
6
我知道我可以将第二次调用的计时器设置为例如 6 秒,它会起作用,但我想知道:
是否有另一种方法可以发现函数调用完成然后触发下一个?没有静态定义一些延迟,甚至可能没有 setTimeout?
【问题讨论】:
标签: javascript