javascript – 拒绝Angular $http承诺

我需要在success / then函数中拒绝$http promise调用.我可以看到两个选项:1)抛出一个错误 – 这会使控制台变得混乱,并且2)使用单独的延迟调用并拒绝它.有更干净/更简洁的方式吗?我有一种感觉,我忽略了一些明显的东西.

错误:

return $http.get(url}.then(function(r) {
  throw new Error('Booh');
});

$q:

var deferred = $q.defer();
$http.get(url}.then(function(r) {
   deferred.reject("Booh");
});
return deferred.promise;

最佳答案 试试这个:

function myfunction()
{
    return $http.post('url')
        .then(function(response){
            // check success-property of returned data
            if(response.data === 'Something you dont want')
                return $q.reject('some error occured');
            else{
                return $q.resolve(response.data);
            }
        })
}
点赞