gpt4 book ai didi

javascript - 数组和异步函数回调

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:18:40 25 4
gpt4 key购买 nike

我有异步函数:

var func = function  (arg, next) {
var milliseconds = 1000;
setTimeout(function(){
console.log (arg);
next()
} , milliseconds);
}

和数组:

var arr = new Array();
arr.push (0);
arr.push (1);

console.log(arr);

我想对我的数组 arr 的每个项目使用 func:

func(arr[0], function(){
func(arr[1], function(){
console.log("finish");
})
})

对于由 2 个元素组成的数组来说没问题,但是如果我得到 1000 个元素的数组,如何对 arr 中的每个项目使用 func

循环怎么做?

最佳答案

var arrayFunc = function(array) {
if (array.length > 0) {
func(array[0], function() { arrayFunc(array.slice(1)); });
}
}

这将使用数组中的第一个元素运行您的函数,然后让延续函数获取数组的其余部分。因此,当它运行时,它将运行数组中新的第一个元素。

编辑:这是一个不复制数组的修改版本:

var arrayFunc = function(array, index) {
if (index < array.length) {
func(array[index], function() {
var newI = index + 1;
arrayFunc(array, newI);
});
}
}

第一次调用它时索引为 0。

关于javascript - 数组和异步函数回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17860089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com