.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();
}