NodeJS异步模块:如何在回调中获取结果对象?

时间:2013-11-22 02:22:52

标签: javascript node.js asynchronous

代码段:

var async = require("async");

async.map([
    "a",
    "b",
    "c"
], function(thing, callback) {
  console.log(thing + "-something");
  callback();
},
function(err, results){
    if (err) return console.error(err);
    console.log(results);
});

我目前的成绩:

a-something
b-something
c-something
[ undefined, undefined, undefined ]

我想要的结果:

[ a-something, b-something, c-something ]
你能告诉我我错了吗?如何在回调中访问结果对象?

1 个答案:

答案 0 :(得分:4)

您需要将结果作为第二个参数传递给callback()(第一个参数应该是错误,如果有的话):

var async = require("async");

async.map([
    "a",
    "b",
    "c"
], function(thing, callback) {
  var returnValue = thing + "-something";
  console.log(returnValue);
  callback(null, returnValue);
},
function(err, results){
    if (err) return console.error(err);
    console.log(results);
});