Ich habe Bibliotheksfunktion, die das Versprechen, etwas in DB nach dem Veröffentlichen einer anderen Versprechen zurückgeben muss. Ich versuche die Versprechen zu ketten, aber nicht funktioniert.Rückgabe Versprechen nach Auflösung Versprechen in derselben Funktion
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");
});
}
Wenn ich die Funktion in meinem Code nennen, wo ich diese Bibliothek Es löst verwenden und bucht ist das Problem die Daten korrekt in dann der ersten Versprechen gezeigt, während ich die zweite benötigen.
libraryAPI.postIssue(createIssue).then(function (data) {
console.log(data);
},function (error) {
console.log(error);
});
Daten sind hier nicht von den zweiten Versprechen aber die erste, aber Ausgabe korrekt
Verwenden 'then' statt' success'/'error' !!! – Bergi
Auch vergessen Sie 'return's vorher' $ q.reject (...) ' – Bergi
@Bergi müssen Erfolg verwenden, da auf die Header zugreifen müssen – OLDRomeo