我有场景。我想在mongodb中更新数据后执行循环。装置,如认为:如何让循环等待node.js中的回调?
var i = 0;
while (i< 5) {
attendanceDataModel.update(query, condition).exec(function(error, data) {
if (error) {
console.log("Error @ 168 line in app.js File : \n" + err + "\n");
i++;
} else {
if (data.length <= 0) {
console.log("No Records Matched.");
i++;
} else {
console.log(currEmpId + " : successfully Logged Out ! :-)" + data + "\n");
updateRecordNumber(currRecordNumber);
i++; //wrong because it increases the value before updating in DB.
}
}
});
}
var updateRecordNumber = function(currRecordNumber) {
var condition = { deviceLogId: parseInt(currRecordNumber) };
lastDeviceLogIdModel.update({}, condition).exec(function(error, data) {
if (error) {
console.log("Error @ 213 line in app.js File : \n" + err + "\n");
} else {
if (data.length <= 0) {
console.log("No Records Matched." + "\n");
} else {
console.log(currRecordNumber + " : DeviceLogId successfully Updated ! :-)");
// I want to increase value of i here after updation in database
}
}
});
}
现在,我想增加变量i值之后,功能updateRecordNumber已成功更新
导致进入无限循环...... –
@AmulyaKashyap是的。用recurent功能你应该改变while循环。函数foo(i){if(i == 5)return;/*你的循环中的东西* /; FOO第(i + 1);/*而不是i ++ * /}; ' –
但是我推荐使用异步库从anwer –