如果无法从data
中找到属性,是否有方法引发错误。
问题是,它Map的是undefined
,而不是抛出错误。
const insertIntoTable = function(data) {
return new Promise((resolve, reject) => {
const entry = {
Id: data.id,
Method: data.Method,
Status: data.PaymentStatus,
InsertedAt: (new Date().getTime())
}
}).catch((error) => {
console.log(error);
});
}
4条答案
按热度按时间ttygqcqt1#
您可以通过将其与
undefined
进行比较来检查属性是否未定义。例如,如果要检查id属性,可以使用djmepvbi2#
mbskvtky3#
首先你需要正确地开始你的承诺,因为你不是解决它,我喜欢这样做:
这样你就可以在你的内部进行验证(而不是拒绝)
你可以创建一个验证函数来检查未定义的变量,如下所示:
像这样使用它:
但是这样你总是会得到同样的错误,你可以改变它来显示基于属性名的错误:
像这样使用它:
这样每次都能得到正确的错误,但我不喜欢使用字符串名称访问属性
goucqfw64#
一种方法是利用短路评估,并执行以下操作:
然而,我发现这很难阅读,所以我目前正在寻找一个更好的替代品。
更新
我一直在使用代理编写一个函数,它提供了可选或默认行为,该函数为
在这里可以被应用为
这样做的优点是它支持深度属性访问。