.tolerate()
指定されたエラーを許容(飲み込む)し、代わりに新しい結果の値(またはundefined
)を返します。(例外をスローしません。)
.tolerate(filter, handler)
または
.tolerate(filter)
.tolerate(handler)
(すべてのエラーを許容する場合)引数 | 型 | 詳細 | |
---|---|---|---|
1 | filter | インターセプトしたいエラーのコード、またはインターセプトするエラーを識別するための基準となる辞書。 | |
2 | handler | オプションの手続き型パラメータ。予想されるエラーがスローされた場合にSailsによって自動的に呼び出されます。以下の「ハンドラー」の使用法テーブルで指定された引数を受け取ります。指定された場合、ハンドラーは結果として使用される値を返す必要があります。省略された場合、予想されるエラーは飲み込まれ、クエリの結果は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();
}