我一直在从PHP迁移到NodeJS,我喜欢它。例如,我使用MySQL并且运行的查询(异步事件)越多,代码就越混乱:
db.execute("SQL query", [params], (err, rows) => {
if(err) {
console.log("error happened");
}
else {
db.execute("other query", [params], (err, rows) => {
if(err) {
console.log("another error happened");
}
else {
console.log("success");
}
});
}
});
使用我的编码样式,一个查询等于7行代码,我认为这样做太多了。 你们如何处理这种代码?你们是否使用某种全球性的错误"当任何查询失败时触发的事件,您只需在代码中假设在此之前一切正常。我在想这样的事情:
function onError() {
console.log("an error happened");
}
db.execute("SQL query", [params], (onError, rows) => {
db.execute("other query", [params], (onError, rows) => {
console.log("success");
});
});
答案 0 :(得分:3)
Promises(看看ES6 Promises或者找到Bluebird包)就是答案。你只是一个接一个地链接它们和我喜欢的东西之一 - 不再是“如果(错误)”。您可以定义Catch方法,捕获错误。对于整个查询链来说,一个问题就足够了。