我的路线中有很多代码,如下所示:
connection.query("query one", function(err, rows){
if(err){
console.log(err);
}else{
connection.query("query two", function(err, rows){
if(err){
console.log(err);
}else{
connection.query("query three", function(err, rows){
if(err){
console.log(err);
}else{
connection.query("query four", function(err, rows){
if(err){
console.log(err);
}else{
}
});
}
});
}
});
}
});
我最终得到了这么多“if(err)”。我想知道是否有更优化的方法可以同时有效地处理这些错误。我可以编写一个带回调的函数来处理所有这些错误:
var connection2 = function(connection, query, callback){
connection.query("query one", function(err, rows){
if(err){
console.log(err);
}else{
callback(rows);
}
});
}
通过这种方式,我可以摆脱所有“if(错误)”。 有没有更好的解决方案,想法或参考?
答案 0 :(得分:1)
你可以使用Promises,那么你的代码就像这样
ada_n00b@wasted_planet ~/Desktop/aws_hello_world $ gprbuild
using project file default.gpr
Error: no native compiler found for language 'ada', default runtime
default.gpr:2:06: unknown project file: "aws"
gprbuild: "default.gpr" processing failed
您需要一个返回该
的Promise的查询函数query('...').then(rows => {
}).then(query('...')).then(rows => {
}).then(query('...')).then(rows => {
}).catch(err => {
console.log(err)
})