【发布时间】:2018-03-01 00:49:55
【问题描述】:
在服务内部发出补丁请求后,我试图获得成功错误响应。尽管我可以对服务本身的成功或错误响应进行解密,但我无法“订阅”或获得对调用它的组件中的函数的承诺回复。
这是我的组件中调用服务的函数
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 无法捕获编辑函数中的 promise 抛出的响应。
我在这里错过了什么?
【问题讨论】:
-
你为什么要订阅promsie,它应该被解决,而且你不需要在服务中解决,而是返回一个承诺并在组件中解决它
标签: javascript angular angular2-services angular2-observables