NodeJS异步处理数组中的每个对象

时间:2015-07-06 12:33:28

标签: javascript arrays node.js async.js

我的问题是我有一个包含多个对象的数组。 我需要为该数组中的所有单个对象执行操作。 异步

但它不起作用?

代码:

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

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

这就是服务器loggs:

[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

正如你所看到的那样,它没有做第二个正确的功能吗?

1 个答案:

答案 0 :(得分:3)

内部回调的第一个参数是非null(即'0'),它被解释为错误,导致函数在处理完第一个元素后终止。只需制作callback3(null, '0')

对于Node中的几乎所有回调,第一个参数通常是error个对象。 (目前我无法想到一个例外情况,但不管怎样,让我们​​坚持使用#34;

希望能解决你的问题。

此外,如果您仅为一些功能使用async,则应该避免使用{例如something like this)。使用async时,我遇到了大型阵列的问题。这与您原来的问题没有关系;只是一个建议。