gpt4 book ai didi

javascript - Nodejs 启动一个新的调用堆栈

转载 作者:行者123 更新时间:2023-12-03 12:07:05 24 4
gpt4 key购买 nike

我有以下问题:

我有一个包含函数的数组,我需要一个接一个地调用它:

fun[0]() 然后 fun[1]() ...

由于这些函数进行异步调用,我不能只写

fun[0]();
fun[1]();

因此,我在数组中每个函数的“末尾”添加了对下一个函数的调用。

这确实有效,但这会导致堆栈增长。示例:

function fun0(){
fun[1](); // now fun[1] is added to the stack
}

有办法避免这个问题吗?我不需要其他函数的局部变量。

最佳答案

是的,有办法解决。

您可以使用 async.js https://github.com/caolan/async

使用npm install async安装它

那么如果你想一个接一个地执行函数,有一个方法,

async.series([
function(callback){
// do some stuff ...
callback(null, 'one');
},
function(callback){
// do some more stuff ...
callback(null, 'two');
}
],
// optional callback
function(err, results){
// results is now equal to ['one', 'two']
});

第二个函数仅在第一个函数发出回调后才执行。因此,这可以确保 async.series 中的所有函数依次执行。

关于javascript - Nodejs 启动一个新的调用堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25136726/

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