当前位置: 首页 > 面试题库 >

Node.js异步系列-将参数传递给下一个回调

万俟英锐
2023-03-14
问题内容

使用异步模块时,如何将参数从上一个回调传递到下一个回调?

这是来自github上的文档的示例

async.series({
    one: function(callback){
        setTimeout(function(){
            callback(null, 1);
        }, 200);
    },
    two: function(callback){
        setTimeout(function(){
            callback(null, 2);
        }, 100);
    }
},
function(err, results) {
    // results is now equal to: {one: 1, two: 2}
});

问题答案:

您可以将异步函数与异步模块的waterfall函数链接在一起。这使您可以说:“先执行x,然后将结果传递给函数y,然后将结果传递给z”。从[docs]
[1]复制:

async.waterfall([
    function(callback){
        callback(null, 'one', 'two');
    },
    function(arg1, arg2, callback){
        // arg1 now equals 'one' and arg2 now equals 'two'
        callback(null, 'three');
    },
    function(arg1, callback){
        // arg1 now equals 'three'
        callback(null, 'done');
    }
], function (err, result) {
   // result now equals 'done'    
});

您严格不需要异步模块来完成此任务;此功能旨在使代码更易于阅读。如果您不想使用异步模块,则始终可以只使用传统的回调。



 类似资料:
  • 问题内容: 我确定我的问题是基于对node.js中的异步编程缺乏了解,但这是可行的。 例如:我有一个要爬网的链接列表。当每个请求都返回时,我想知道它的URL。但是,大概是由于竞争条件造成的,每个请求都将URL返回设置为列表中的最后一个值。 预期产量: 实际输出: 所以我的问题是: 如何将url(按值)传递给回调函数?要么 链接HTTP请求以使其顺序运行的正确方法是什么?要么 我还缺少什么? PS:

  • 问题内容: 我正在尝试将一些参数传递给用作回调的函数,该怎么做? 问题答案: 如果您想要更一般的东西,可以使用arguments变量,如下所示: 但是否则,您的示例可以正常工作(可以在测试器中使用arguments [0]代替回调)

  • 问题内容: 我尝试了以下失败的尝试: 在函数a中,我可以使用arguments关键字来访问参数数组,而在函数b中,这些参数将丢失。有没有办法像我尝试的那样将参数传递给另一个javascript函数? 问题答案: 用于对in函数具有相同的访问权,如下所示:

  • 问题内容: 我试图找出将自定义数据传递给查询调用以使其在回调中可用的正确方法。我在nodejs(所有最新版本)中使用MySQL库。 我打电话给connection.query(sql,function(err,result){…}); 我找不到办法1)将自定义数据/参数传递给调用,以便2)在调用回调时可以使它可用。那么正确的做法是什么? 我有以下(伪代码): 从上面的代码,我需要能够将查询中使用的

  • 问题内容: 我是ajax和回调函数的新手,如果我弄错了所有概念,请原谅我。 问题: 我可以将 回调 函数作为参数发送给将执行该回调的另一个函数吗? 问题答案: 对。函数引用与任何其他对象引用一样,您可以将它们传递到您的内心。 这是一个更具体的示例: 您还可以传递以下参数:

  • 问题内容: 在我的我有一个按钮。我想通过在方法中传递多个参数来为其添加动作。 问题答案: 也许你可以做这样的事情 根据您的要求创建标签值并保持其完整性。