无论承诺是否返回错误,有没有办法触发 $q.all ?
我正在尝试执行多个 $http.post 请求,从用户输入的文本字段中发布值。后端(Django REST 框架)有一个我们实现的值检查器,所以如果 POST 的值与预期的不同(即,在预期整数的地方提交了一个字符串),将返回 400 状态,这反过来会导致 $ q.all 不触发,这在我的应用程序中导致了许多不同的错误。
//Beginning of for loop, getting values in text fields, setting
//up other things I'm not sure are really relevant here.
var writeRes = $http({
method: 'POST',
url: '/' + api_prefix + '/values/',
data: out_data, //defined elsewhere, not relevent here.
headers: { 'Content-Type': 'application/json','X-CSRFToken': $scope.valueForm.csrf_token,'Accept': 'application/json;data=verbose' } // set the headers so angular passing info as form data (not request payload)
});
saved.push(writeRes);
//array defined at beginning of for loop
writeRes.success(function(data, status, headers, config){
$scope.scope.param_values.push(data.id);
//array of IDs relevant to the REST framework.
});
error(function(status){
//not sure what to do here.
});
}
}
$q.all(saved).then(function() { //perform other PATCH, DELETE, GET tasks }
正确的值正在被 POST,但如果有错误,$q.all 中的后处理不会被触发,这会在页面刷新时导致很多问题。
有没有什么方法可以触发 $q.all 而不管错误?
如果我的问题似乎难以捉摸,我深表歉意,我真的对前端开发不太了解,并且觉得我在这个项目中跑来跑去。