Я использую nodejs.
Как я могу убедиться, что мой цикл for полностью завершил работу, чтобы я мог вернуть свой msgList, заполненный записями, из которых один проход / неудача?
Есть ли правильный способ, еслииспользуя обратный вызов или обещание для этого случая?
Сейчас я получаю следующее:
Результат:
{
"message": "Handling PUT requests to /api/micontact.",
"result": []
}
Код:
exports.updateBooks = (req, res) => {
var books = req.body.books;
var createdBy = constant.defaultUsername;
var currentDate = converter.formatDate(new Date());
let msgList = [];
for (var i = 0; i < books.length; i++) {
let msgArr = "Record index: " + i + " ";
var params = [];
var book = books[i];
var bookId = globUtil.checkforUndefined(book.bookId);
var title = globUtil.checkforUndefined(book.title);
if(bookId === null) {
msgArr += message.bookId ;
msgList.push(msgArr)
}
params.push(title, bookId);
pool.open(connString, function (err, db) {
if (err) {
msgArr += err;
msgList.push(msgArr);
return;
}
db.query(query.sqlUpdate, params, function (error, result, info) {
if (error) {
msgArr += error;
msgList.push(msgArr);
return;
}
msgArr += "SUCCESS";
msgList.push(msgArr);
});
db.close();
});
}
res.status(200).json({
message: format(message.defaultMsg, "PUT", constant.moduleUrl),
result: msgList
});
};