私はフロントエンドのAngular webpageから呼び出すバックエンドとして簡単な休憩サービスを書いています。以下は呼び出しを行うフロントエンドコードです。 有効な人物が指定された場合、約束が拒否され、エラーメッセージが表示されます。ボタンがユーザによって押された後プロミスallwaysが拒否される
savePerson(person: Person) {
const jsonHeader = 'application/json';
const jsonPerson = JSON.stringify(person);
return new Promise((resolve, reject) => {
this.httpClient.post(this.url, jsonPerson, {
headers: new HttpHeaders()
.set('Accept', jsonHeader)
.set('Content-Type', jsonHeader)
})
.toPromise()
.then(
res => { // Success
console.log("success");
resolve(res);
},
res => {
console.log("rejected");
reject(res)
}
);
});
}
このコードが呼び出さ:
savePerson() {
this.myService.savePerson(this.person).then(
result => {
this.showMessage("Saved");
},
error => {
console.log(error);
this.showMessage("Error when saving")
}
);
}
(入力された有効な人との)ログインエラー: オブジェクト{ヘッダー:{...}、ステータス:201、 STATUSTEXT: "作成者"、URL: "http://localhost:8080/api/v1.0/person"、[OK]:偽、名前: "HttpErrorResponse"、メッセージ: "http://localhost:8080/api/v1.0/personのための解析中のHttp障害"、エラー:{...}}
私は、これは、Aであると仮定していますフロントエンドアプリの問題です。バックエンドの後退HTTP 201が作成されました。 誰かが私のために問題を特定できれば素晴らしいだろう!
「エラー:{...}」とは何ですか? –
それは価値があるので、そのコードは[Promise creation anti-pattern]に落ち込んでいます(https://stackoverflow.com/questions/23803743/what-is-the-explicit-promise-construction-antipattern-and-how -do-i-avoid-it#)。そこには「新しい約束」は必要ありません。 –
['Promise'コンストラクタの反パターン]を避けてください(https://stackoverflow.com/q/23803743/1048572?What-is-the-promise-construction-antipattern-and-how-to-avoid-it)! – Bergi