数组中每个对象的 NodeJS 异步

NodeJS async for each object in array

我的问题是我有 1 个包含多个对象的数组。 我需要为该数组中的所有这些单个对象做一些事情。 异步

但是没有用?

代码:

console.log('Data: ' + data);

async.eachSeries(data, function (item, callback3) {
 console.log(item.id);
 callback3('0');
}, function done(err) {
 console.log('done');
});

这是服务器记录的内容:

[root@bravo servers]# node app.js
[ { id: 1,
    ownerid: 11,
    topicid: 1,
    content: 'First comment',
    date: Sun Jun 21 2015 23:18:05 GMT+0200 (CEST) },
  { id: 2,
    ownerid: 11,
    topicid: 1,
    content: 'Another test',
    date: Mon Jun 22 2015 00:18:34 GMT+0200 (CEST) } ]
1
done

如您所见,它不是在执行第二个函数,而是转到 done 函数吗?

内部回调的第一个参数是非空的(即 '0'),这被解释为错误,导致函数在处理完第一个元素后终止。就让 callback3(null, '0').

对于 Node 中的几乎所有回调,第一个参数通常是一个 error 对象。 (目前我想不出有什么例外,但我们还是坚持 "almost" 吧。)

希望能解决您的问题。

此外,如果您仅将 async 用于一些功能,您应该避免使用它(例如 something like this)。我在使用 async 时遇到过大型数组的问题。这与您的原始问题无关;只是一个建议。