如何处理异步Nodejs应用程序上的错误



我一直从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(错误)"。您定义捕获方法,在哪里捕获错误。一个捕获足以容纳整个查询链。

相关内容

最新更新