【发布时间】:2017-11-07 11:41:42
【问题描述】:
我有我的查询数组
var array = [ 'UPDATE EVALUATION SET mark = "16" WHERE id_eval = "21" AND id_usr = "125"',
'UPDATE EVALUATION SET mark = "9" WHERE id_eval = "22" AND id_usr = "125"',
'UPDATE EVALUATION SET mark = "8" WHERE id_eval = "34" AND id_usr = "125"'
]
但是,当我尝试使用异步方式一次执行所有操作时,我的网页显示 Waiting for localhost... 并且它会一直加载。我做错了什么?
async.forEach(array, function(query, callback) {
connection.query(query, function(err, rows, fields) {
if(err) {
return console.error(err);
}
callback();
});
}, function(err){
if(err) {
return console.log(err);
}
});
【问题讨论】:
-
你的连接是否建立??
-
你连接的数据库服务器一次只能处理最大数量的查询。
-
你应该在你的第一个函数中使用
return callback(err)来传播错误,并且只在最后一个函数中处理它们。就像现在一样,connection.query中的任何错误都不会传播到最后一个函数。 -
另外,请检查您的控制台是否有错误。
-
首先:你应该真的做一个
return callback(err)如果有什么失败,并在最后一个块中记录你的错误。第二:不要忘记调用res.end()或类似的方式来退出HTTP连接。
标签: javascript node.js async.js