如何从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太大,那么在进入循环之前你会得到溢出。