サービス内で行われたパッチリクエスト後に成功エラー応答を取得しようとしています。私はサービス自体の成功またはエラーの応答を検出することができますが、私はそれを呼び出すコンポーネントの関数に「サブスクライブ」または約束応答を返すことができません。ここで購読済みのサービスからメソッドを取得することができません
はここ
this.os.edit({
description: this.form.value.description,
role_info: {
all_learning_points: learningPointsArray
}
}).then((data) => {
console.log("Data is ", data);//Can't get the value over here
}, (error) => {
console.log("Error is: ", error);
});
サービスを呼び出している私のコンポーネント内の関数は、サービス内の機能が
edit(data) {
return new Promise((resolve, reject) => {
this.model.patch(`opportunities/${this.opportunity.value.id}`, {opportunity: data})
.subscribe(data => {
this.opportunity.next(data); //Getting the value here
this.router.navigate(['opportunity', this.opportunity.value.id]);
}, error => {
console.log("Error is: ", error);
alert('Something went wrong');
});
})
}
どういうわけか私の.thenが戻って投げ応答をキャプチャすることができませんです編集機能の約束によって。
私はここで何が欠けていますか?あなたが一緒にアプローチに混入している
resolve(data)
そしてまたにこの行(オブザーバー/件名スタイル)
this.opportunity.next(data);
を変更する必要が約束して
なぜあなたはpromsieを購読しているのですか?解決する必要がありますし、代わりに約束を返してコンポーネントで解決する必要はありません。 –