Node.js 未处理的承诺拒绝:发送到客户端后无法设置标头
我不知道为什么这些错误不断出现。我在互联网上搜索了所有可能的解决方案,但仍然没有找到任何解决方案。这是我的API调用节点函数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)
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
});
});
};
谢谢大副快速解决,真的很有帮助。