我一直从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");
});
});
承诺(查看ES6承诺或查找蓝鸟软件包)是答案。您只需要一个接一个地将它们链接起来,而我喜欢的一件事 - 不再是" if(错误)"。您定义捕获方法,在哪里捕获错误。一个捕获足以容纳整个查询链。