.tolerate()
容忍(吞并)指定的错误,并返回一个新的结果值(或 undefined
)代替。(不要抛出错误。)
.tolerate(filter, handler)
或者
.tolerate(filter)
.tolerate(handler)
(容忍所有错误)参数 | 类型 | 详情 | |
---|---|---|---|
1 | filter | 您想要拦截的错误代码,或用于识别要拦截的错误的条件字典。 | |
2 | handler | 一个可选的 过程参数,如果抛出预期的错误,Sails 会自动调用它。它接收“Handler”用法表下方指定的参数。如果指定,处理程序应返回一个将用作结果的值。如果省略,则预期的错误将被吞并,查询的结果将为 undefined 。 |
参数 | 类型 | 详情 | |
---|---|---|---|
1 | err | 您预期的错误。 |
.tolerate()
用于容忍某种错误(或所有错误)。如果您链接到.tolerate()
并且它与发生的错误匹配,则底层逻辑将不会抛出错误。相反,它会返回您传递给 .tolerate() 的处理程序函数的返回值。
假设您正在构建一个通讯录,不允许记录具有重复电子邮件地址。要改为吞并输入非唯一电子邮件地址导致的错误并更新现有联系人
let newOrExistingContact = await Contact.create({
emailAddress,
fullName
})
.fetch()
.tolerate('E_UNIQUE');
if(!newOrExistingContact) {
newOrExistingContact = await Contact.updateOne({ emailAddress })
.set({ fullName })
.fetch();
}