.catch()
使用 Promise 執行 Waterline query 實例。
.catch(callback)
從 Sails v1 和 Node.js v8 開始,您可以利用
await
,而不是使用此方法。
參數 | 類型 | 詳細資訊 | |
---|---|---|---|
1 | filter | 一個可選的字典,其屬性將針對錯誤進行檢查。如果它們全部匹配,則回呼函式將會執行。否則,它不會執行。 | |
2 | callback | 查詢失敗時運行的函式。 將錯誤作為其參數。 |
參數 | 類型 | 詳細資訊 | |
---|---|---|---|
1 | err | 發生的錯誤,如果沒有錯誤則為 undefined 。 |
查找具有指定電子郵件地址的使用者
User.findOne({
email: req.param('email')
})
.then(function (user){
if(!user) { return res.notFound(); }
return res.json(user);
})
// If there was some kind of usage / validation error
.catch({ name: 'UsageError' }, function (err) {
return res.badRequest(err);
})
// If something completely unexpected happened.
.catch(function (err) {
return res.serverError(err);
});
- 在可能的情況下,建議您使用
await
而不是調用此方法。- 這是
.exec()
的替代方案。當與.then()
結合使用時,它提供相同的功能。.catch()
函式也返回一個 promise 以允許鏈式調用。除了 promise 的高級用戶之外,不建議任何人使用此功能,因為鏈式.catch()
調用的行為複雜(且可以說不直觀)。- 有關更多資訊,請參閱 bluebird
.catch()
api 文件。