如何在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 –