是否有在“异步”中实现的非递归功能

is there a non-recursive feature implemented in `async`?

本文关键字:实现 递归 功能 异步 是否      更新时间:2023-09-26

我需要处理相当大量的条目(数万个),具有async.eachasync.eachSeriesasync.whilst等函数。

说我必须使用async几乎是多余的,因为我将为每个条目调用一些查询,使代码异步。

不幸的是,使用 async 的函数,调用堆栈消耗得非常快,导致RangeError: Maximum call stack size exceeded

有没有办法调整async以防止此问题?迭代实现将解决问题。有没有考虑到这个问题的替代库?

下面是显示问题的示例代码片段:

异步 = 要求('异步');

a = []
for(i = 0; i < 10000000; i++) {
    a[i] = i;
}
async.eachSeries(a,function(element,callback) {
    console.log(element);
    callback();
},function(err){
    if(err){
        console.log("error:",err);
    }
    console.log("finished.");
});

您要查找的是tail recursion。检查这个问题:什么是尾递归?