我正在使用Q.js进行承诺。
我想知道当 Q-promise 失败时是否可以快速格式化/更改错误消息。
考虑一个人为的例子:
return Q.when(//$.ajaxpromise for instance).then(function(result){
//handle result
}).fail(function(err){
//somehow change err (returned from $.ajax) to something
//sensible (say the statuscode + responseText) and
//push it up the callstack
});
当然,我可以执行以下操作,但感觉有点麻烦:
var deferred = Q.defer();
Q.when( //$.ajaxpromise for instance).then(function(result){
//handle result
deferred.resolve();
}).fail(function(err){
deferred.reject(new Error(err.responseText));
});
return deferred.promise;
无论如何要更优雅地做到这一点?