如何打破 AngularJS 中的链式承诺?
这是 app.js 中的评论,我想打破链。
使用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;
/* .. */
通过这种方式你会去错误回调
请记住,您只能解决/拒绝一次承诺!
通常,您不返回结果(在您的案例响应中),您应该返回一个承诺。然后你用你的结果来解决这个承诺:
var deferred = q.defer();
deferred.resolve(response);
return deferred.promise;
或拒绝承诺
deferred.reject(response);
或者回馈一个已经被拒绝的承诺
return $q.reject(response)
如果您拒绝或解决承诺,则将在下一个 then 语句中调用成功或错误函数。