У меня есть функция библиотеки, которая должна вернуть обещание опубликовать что-то в БД после того, как оно разрешит другое обещание. Я пытаюсь объединить обещания, но не работает.Возвращение обещания после разрешения обещания в той же функции
postIssue: function (issue) {
return getUserConfiguration()
.success(function (response, status, headers) {
var token = headers("X-XSRF-TOKEN");
if (token) {
_cookie = token;
if (issue.isValid()) {
var url = _baseURL + "/api/issue/";
var data = JSON.stringify(issue);
var config = {
xhrFields: { withCredentials: true },
headers: { "X-XSRF-TOKEN": _cookie }
};
return $http.post(url, data, config);
}
else {
return $q.reject("Issue doesn't have valid fields to submit");
}
}
else {
$q.reject("There is no XSRF token on response header");
}
})
.error(function() {
$q.reject("Error getting user's configuration");
});
}
Когда я вызвать функцию в своем коде, где я использую эту библиотеку Она решает и правильно сообщения вопроса данных в то показан первом обещании, пока мне нужно второй.
libraryAPI.postIssue(createIssue).then(function (data) {
console.log(data);
},function (error) {
console.log(error);
});
данные здесь не из второго обещания, но первый один, но выпуск создан правильно
Используйте 'затем' вместо' success'/'error' !!! – Bergi
Также вы забыли 'return' before '$ q.reject (...)' – Bergi
@Bergi нужно использовать успех, так как нужно получить доступ к заголовкам – OLDRomeo