我如何返回承诺但立即调用其失败块?这是一种可行的方法:
if (fail) {
var q = $q.deferred();
$timeout(function() {
q.reject("")
}, 1);
return q.promise;
} else {
return $http.get("/").then(function(data) {});
}
答案 0 :(得分:18)
if( fail ) {
return $q.reject(yourReasonObject);
}
else ...
参考here:)
答案 1 :(得分:2)
function setLike(productId){
return new Promise(function(succeed, fail) {
if(!productId) throw new Error();
jQuery.ajax({
success: function (res) {
succeed(res)
}
})
})
}
setLike(id).then(function(){
//render
}).catch(function(e){})