如何在AngularJS中断链承诺?AngularJS中断承诺链
这里是与app.js中的评论plunk,我想打破链。
http://plnkr.co/edit/MBBWJGwPfy2Wz13yczvV?p=preview
如何在AngularJS中断链承诺?AngularJS中断承诺链
这里是与app.js中的评论plunk,我想打破链。
http://plnkr.co/edit/MBBWJGwPfy2Wz13yczvV?p=preview
使用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)
要么如果拒绝或解决的承诺成功或错误函数将在下一个语句中调用。
尝试按“获取数据”按钮一次或几次。它工作不正确。 –
只需将'var defer = $ q.defer();'移动到放置部分。改变了Plunker –