最近写数据库批量插入数据的时候遇到了一个异步编程之痛的问题,就是数据库操作都是异步回调的,那么就没有办法用for循环来操作了,思考了一下,看来只能利用迭代循环了,举例分享一下,希望高手提提意见,小白小心一下。
exports.saveBatch = function saveBatch(basicInfos, callback) {
executeFunc(basicInfos, 0, [], callback);
}
function executeFunc(basicInfos, count, errs, callback) {//errs是个错误信息收集器,最后统一返回错误信息集合
if (count == basicInfos.length) {
callback(errs);
} else {
basicInfos[count].save(function (err) {
count++;
err && errs.push(err.message);
executeFunc(basicInfos, count, errs, callback);
});
}
}