如何从Node.js中的asynchronous循环返回

在使用asynchronous库进行stream量控制时,特别是async.forEach,如果您需要跳过特定项目,如何正确执行callback。

例:

async.forEach(bigCollection, function(item, callback) { if(skipThis) { return callback(); // OR BELLOW IS BETTER?? //return process.nextTick(callback); } db.query(query, callback); }, callback); 

如果我不使用process.nextTick(callback) ,如果bigCollection太大,我会冒险运行到堆栈溢出吗? 而且,如果我使用process.nextTick(callback) ,我无论如何破坏我的代码?

我有习惯做process.nextTick(callback)方式,但是我不太确定这是一个好的做法。

我会说没有nextTick就没关系。

 async.forEach(bigCollection, function(item, callback) { if(skipThis) { return callback(); } db.query(query, callback); }, callback); 

如果bigCollection太大,那么在进入循环之前你会得到溢出。