代码段:

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 ]

你们能告诉我我做错了什么吗?如何访问回调中的results对象?

最佳答案

您需要将结果作为第二个参数传递到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);
});

关于javascript - NodeJS异步模块:如何在回调中获取结果对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20135831/

10-15 16:08