小编典典

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

node.js

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

这是来自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}
});

阅读 209

收藏
2020-07-07

共1个答案

小编典典

您可以将异步函数与异步模块的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'    
});

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

2020-07-07