我在其他服务中调用一个函数
this.response = this.groupingService.handleGroupingIntent(...);
在另一个服务的函数本身中,我在另一个服务中调用另一个函数:
handleGroupingIntent(){
this.tablePlanService.group(...).then(() => {return true;}).catch(() => {return false;})
}
此功能在第三项服务中如下所示:
return new Promise((resolve, reject) => {
const onSuccess = () => resolve();
const onError = (err: HttpErrorResponse) => {
const errorHandler = this.httpErrorResponseHandler(
`Serverfehler beim Gruppieren von Tisch ${tableToAdd.number}` +
` zu Tisch ${masterTable.number}.`);
errorHandler(err);
reject();
};
this.http.post(`/api/table-plan/groupings`, data)
.subscribe(onSuccess, onError);
});
}
我想通过第二个函数中的then / catch子句将this.response
变量设置为true或false,但是它返回undefined
。
我应该如何解决这个问题?
感谢您的帮助。
答案 0 :(得分:0)
您还应该从Promise
返回一个handleGroupingIntent()
。
尝试一下。
handleGroupingIntent(){
return new Promise((resolve, reject) => {
this.tablePlanService.group(...)
.then(() => {
resolve(true)
}).catch(() => {
reject(false)
})
});
}
调用handleGroupingIntent()
函数,如下所示。
this.groupingService.handleGroupingIntent(...)
.then((data) => {
this.response = data;
}).catch((data) => {
this.response = data;
});
希望这会对您有所帮助。