У меня есть следующий код:
CaseFolderResource
.exportByCaseId()
.getWithGenericResponse(
{caseId : request.caseId},
function (result) {
console.log(result);
console.log('in 4')
},
ErrorHandler.handleError
)
.$promise
.then(
function (success) {
console.log(success);
console.log('in 2');
console.log('success');
CaseFolderResource
.getByCaseId()
.getWithGenericResponse(
{caseId : request.caseId},
function (result) {
console.log('nested call');
console.log(result);
}
);
},
ErrorHandler.handleError
);
В console log
я вижу in
, затем in 2
, а затем success
, даже на выходе был сбой, так что в журналах обещаний: data
сsuccess:false
.
Я получаю HTTP 500 по первому и второму обещанию.
Редактировать:
getWithGenericResponse
это:
getWithGenericResponse: {
method: 'GET',
interceptor: genericResponseInterceptor,
headers: {
'Authorization': function () {
return AuthHolder.getAuthData();
},
'X-Company': function(){
return getCompany();
}
}
},
genericResponseInterceptor
:
var genericResponseInterceptor = {
response: function (data) {
var response = data.data;
console.log(response);
if (data.status === 401 || data.status === 403) {
reject();
} else if (!response.success && response.errors !== undefined && response.errors !== null) {
response.errors.forEach(function (error) {
console.log(error.code);
if (error.message) {
ToasterService.showTranslatedWarningToasterInstant(error.message);
} else {
ToasterService.showTranslatedWarningToaster('error.' + error.code, {params: error.args});
}
});
}
return response;
},
responseError: function (data) {
if (data.status === 401) {
reject();
} else if (data.status === 403) {
ToasterService.showTranslatedErrorToaster('error.message.403');
} else {
ToasterService.showTranslatedErrorToaster('error.message.default');
}
return data;
}
};
Даже если я удаляю: ,ErrorHandler.handleError
из первого запроса - результат такой же, как описано выше.
Редактировать:
Я могу решить это с помощью if (response.data.success)
:
CaseFolderResource.exportByCaseId().getWithGenericResponse({caseId : request.caseId}).$promise
.then(function (response) {
console.log(response.data);
console.log(response.success);
if (response.data.success) {
console.log('in 2');
console.log('success');
CaseFolderResource.getByCaseId().getWithGenericResponse({caseId : request.caseId}, function (result) {
console.log('nested call');
console.log(result);
});
}
});