我在action里这样使用promise,希望通过promise链,能统一处理异常,以下是我的部分代码:
doCompleteInfoAction: function () {
...
var promise = this.session('house').then(function (house) {
if (!_.isEmpty(house)) {
return D('house').add({
bind_time: moment().format('YYYY-MM-DD hh:mm:ss'),
name: house.hname
});
}
});
promise.then(function (insert_id) {
return D('default').where({
uid: self.user_info.id
}).update({
hid: insert_id
});
});
promise.then(function () {
throw 'a error';
self.json({status: 1});
});
return promise;
}
我发现thinkjs不能处理我抛出的异常?
扫码关注w3ctech微信公众号
promise.then会生成一个新的promise,所以要
promise = promise.then(function(){})
return this.session('house').then(function (house) {
if (!_.isEmpty(house)) {
return D('house').add({
bind_time: moment().format('YYYY-MM-DD hh:mm:ss'),
name: house.hname
});
}
return getPromise('reject', true);
}).then(function (insert_id) {
return D('default').where({
uid: self.user_info.id
}).update({
hid: insert_id
});
}).then(function () {
self.json({status: 1});
}).catch(function(err){
if(err.message === 'reject'){
//ignore
}
//return getPromise(err, true);
})
共收到2条回复