在一些角度服务中,我需要调用一个名为的 PUT 方法,完成后我需要调用另一个 GET 方法。然后 GET 方法的结果应该存储在服务本身的变量中。
我写的代码有一些问题。因为当我从组件调用服务时,isUpdateSuccess 在组件中显示为未定义。
在这里,我不需要将“应用程序”对象传递给组件。我只需要将 ApplicationStatusModel 作为 observable 传递。但是如上所述,我需要将应用程序对象保存到名为 myApplication 的变量中。
我读了几篇文章,也浏览了一些 Stackoverflow 帖子。还没有运气。
服务
private myApplication: ApplicationHeader;
updateStudentAssessmentStatus(model: ApplicationStatusModel): Observable<boolean> {
const data = this.svcHttp.put<boolean>(`${this.routePrefix}/${model.studentID}/applicationAssessmentStatus`, model)
.pipe(
switchMap(() => this.getApplicationHeaderById(model.studentID)
.pipe(map(application => {
console.log(`Application from update status ${JSON.stringify(application)}`);
this.myApplication = application;
})))
);
return data;
}
组件(调用“updateStudentAssessmentStatus”)
this.svcApplication.updateStudentAssessmentStatus(statusModel).subscribe((isUpdateSuccess: boolean) => {
//isUpdateSuccess is NULL here.
if (!isUpdateSuccess) {
} else {
}
});