Node.js 未处理的承诺拒绝:发送到客户端后无法设置标头

Node.js 未处理的承诺拒绝:发送到客户端后无法设置标头,node.js,angular,api,express,header,Node.js,Angular,Api,Express,Header,我不知道为什么这些错误不断出现。我在互联网上搜索了所有可能的解决方案,但仍然没有找到任何解决方案。这是我的API调用节点函数 exports.GetEmployeeConfirmationList = function (req, res) { var request = dbConn.request(); request.execute(storedProcedures.GetEmployeeConfirmationList).then(function (response)

我不知道为什么这些错误不断出现。我在互联网上搜索了所有可能的解决方案,但仍然没有找到任何解决方案。这是我的API调用节点函数

exports.GetEmployeeConfirmationList = function (req, res) {
    var request = dbConn.request();
    request.execute(storedProcedures.GetEmployeeConfirmationList).then(function (response) {
        res.status(200).send({
            success: true,
            data: response.recordset
        });
    }).catch(function (err) {
        res.status(200).send({
            success: false,
            message: err.message
        });
    });
};
如何克服这个问题?
提前感谢。

修改代码以使用箭头函数,因为
res
对象正在失去作用域。 调用
GetEmployeeConfirmationList
回调时,它不知道
res
对象,因此它的
未定义。因此,在执行
res.status
时,它抛出一个异常并进入
catch
块,在该块中它再次执行
res.status
,再次中断并导致未处理的承诺拒绝。 您可以捕获
err
对象,并在
finally
块中记录它,以检查它是否正在发生

exports.GetEmployeeConfirmationList = function (req, res) {
    var request = dbConn.request();
    request.execute(storedProcedures.GetEmployeeConfirmationList).then((response) => {
        res.status(200).send({
            success: true,
            data: response.recordset
        });
    }).catch((err) => {
        res.status(200).send({
            success: false,
            message: err.message
        });
    });
};

谢谢大副快速解决,真的很有帮助。