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

标签 javascript node.js

我有以下问题:

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

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/

相关文章:

javascript - latlng函数参数

javascript - devops-rest APi - $expand 不适用于 "Work Items - Get Work Items Batch"

javascript - 如何导入为对象的新副本?

node.js - Azure Web 聊天测试显示 "There was an error sending this message to your bot: HTTP status code Unauthorized"

node.js - 无法使用aws-sdk在nodejs中上传图片

javascript - 使用 Angular 设置 Express

javascript - 为什么它将包含文件中的所有注释打印到屏幕上?

javascript - 代码如何在不点击按钮的情况下立即执行?

javascript - Node.js Readable self.push() 在工作 15 次迭代后停止

javascript - 通过Node.js服务HTML5