【发布时间】:2015-11-11 23:47:06
【问题描述】:
我正在 Angular 中进行一些 http 调用,并在发生错误时尝试调用不同的服务函数。但是,无论我原来的服务调用函数返回如何,它返回的承诺始终是“未定义的”。这是一些给出上下文的代码:
srvc.sendApplicantsToSR = function (applicant) {
var applicantURL = {snip};
var promise = $http({
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
method: 'POST',
url: applicantURL,
data: applicant
})
.success(function (data) {
return data;
})
.error(function (error) {
return [];
});
return promise;
};
然后,在控制器中:
for (var applicant in $scope.applicants) {
$scope.sendATSError($scope.sendApplicantsToSR($scope.applicants[applicant]), applicant);
}
$scope.sendATSError = function (errorCheck, applicantNumber) {
if (angular.isUndefined(errorCheck)) {
console.log(errorCheck);
AtsintegrationsService.applicantErrorHandling($scope.applicants[applicantNumber].dataset.atsApplicantID);
}
};
但是,它总是发送错误,因为每个响应都是未定义的。如何正确区分两个退货?谢谢!
【问题讨论】:
-
试试 promise = $http(...);承诺.成功(...);回报承诺;
-
您没有提供所有相关代码。第一个 sn-p 包含 srvc.sendApplicantsToSR,第二个是 $scope.sendApplicantsToSR。并且 angular.isUndefined 对于承诺来说总是错误的。 @hally9k Promises 不是那样工作的。
-
所以 $http 不返回承诺是你在说什么?请解释您所说的“承诺不会那样工作”是什么意思。
-
糟糕,抱歉@estus,我似乎粘贴了错误的 srvc 代码,但 errorHandling 与我提供的非常相似。 :) 只是一个不同的 URL,不需要那个标题。
-
Imcphers,您似乎对HTTP调用返回的
data不感兴趣,只对调用是否成功感兴趣。我说的对吗?
标签: javascript angularjs promise