答案 0 :(得分:0)
使用defer.reject
方法:
var defer = $q.defer();
/* .. */
response.data.name = response.data.name + " error(2)";
if(<drop me>){
defer.reject( response );
return defer.promise;
}
return response;
/* .. */
通过这种方式,您将转到错误回调
参见 PLUNKER
请记住,您只能解决/拒绝承诺一次!
答案 1 :(得分:0)
一般情况下,您不会返回结果(在您的案例回复中),您应该返回一个承诺。然后你用你的结果解决了这个承诺:
var deferred = q.defer();
deferred.resolve(response);
return deferred.promise;
或拒绝承诺
deferred.reject(response);
或者回馈已被拒绝的承诺
return $q.reject(response)
如果您拒绝或解决了承诺,则会在下一个声明中调用成功或错误函数。