当使用异步库进行流控制时,特别是 async.forEach 在需要跳过特定项目时如何正确执行回调。
例子:
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)
,但是我不确定这样做是否是一个好习惯。