我试图捕捉使用Mongoose本地承诺从Mongoose抛出的错误.但我不知道从哪里获取Mongoose的错误对象.
如果可能的话,我希望将错误抛入.then()
s并陷入其中.catch()
.
var contact = new aircraftContactModel(postVars.contact);
contact.save().then(function(){
var aircraft = new aircraftModel(postVars.aircraft);
return aircraft.save();
})
.then(function(){
console.log('aircraft saved')
}).catch(function(){
// want to handle errors here
});
Run Code Online (Sandbox Code Playgroud)
尝试不使用其他库,因为.save()本身返回一个promise.
Jas*_*ust 26
MongooseJS使用没有方法的mpromise库catch()
.要捕获错误,您可以使用第二个参数then()
.
var contact = new aircraftContactModel(postVars.contact);
contact.save().then(function() {
var aircraft = new aircraftModel(postVars.aircraft);
return aircraft.save();
})
.then(function() {
console.log('aircraft saved')
}, function(err) {
// want to handle errors here
});
Run Code Online (Sandbox Code Playgroud)
更新1:从4.1.0开始,MongooseJS现在允许使用哪个promise实现的规范:
Yup
require('mongoose').Promise = global.Promise
将使猫鼬使用原生承诺.您应该能够使用任何ES6承诺构造函数,但是现在我们只使用native,bluebird和Q进行测试
更新2:如果您在最新版本的4.x中使用mpromise,您将收到此禁止警告:
DeprecationWarning: Mongoose: mpromise (mongoose's default promise library) is deprecated
Run Code Online (Sandbox Code Playgroud)
小智 4
你可以在猫鼬上扩展承诺功能bluebird
Promise = require('bluebird');
mongoose.Promise = Promise;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
24449 次 |
最近记录: |