在下面的代码中,我希望在迭代完所有元素后执行函数finalCallBack
var rows = [
{ name: 'first'},
{ name: 'second'}
];
var execForEachRow = function(row, callback){
var studentModel = new StudentModel(row);
studentModel.save(function(err,result){
if (err) { throw err;}
rowsSavedCount++;
});
}
var finalCallBack = function(err){
if (err) { msg = err;} else { msg = rowsSavedCount;}
res.send({"result" : msg});
}
async.each(rows, execForEachRow, finalCallBack);
当我执行上面的代码时,它非常成功地将数据插入到mongo集合中。但是,finalCallBack不会被调用。
我在这里可能缺少什么线索?
答案 0 :(得分:0)
你错过了在studentModel.save
的回调中呼叫回调:
studentModel.save(function(err,result){
if (err)
return callback(err);
rowsSavedCount++;
callback(null);
});
另外 - 抛出异常并不是一个好主意 - 它会打破整个Express服务器。