1
別の約束を解決した後、DBに何かを投稿するという約束を返す必要のあるライブラリ関数があります。 私は約束を連鎖しようとしていますが、うまくいっていません。同じ関数で約束を解決して約束を返す
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);
});
データは、第2約束が、最初の1ではありませんが、問題はここに正しく
利用代わりに '' SUCCESS'/'ERROR'のthen'! – Bergi
また、 '$ q.reject(...) 'の前に' return'sを忘れてしまった。 – Bergi
@Bergiはヘッダにアクセスする必要があるので成功する必要がある – OLDRomeo