我已经从 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");
});
});
最佳答案
Promises(查看 ES6 Promises 或查找 Bluebird 包)就是答案。你只需将它们一个接一个地链接起来,这是我喜欢的事情之一——不再有“如果(错误)”。您定义 Catch 方法,在其中捕获错误。一次捕获就足以完成整个查询链。
关于node.js - 如何处理异步 NodeJS 应用程序上的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37966118/