【发布时间】:2019-07-26 19:53:59
【问题描述】:
我必须对单个(点击)事件执行两个不同的数据库事务。
第一次调用:将数据保存到数据库。
第二次调用:从数据库中获取第一次调用的保存数据
这些调用被分隔在两个不同的组件中,并处理一个公共数据库表。
我的方法如下:
第一个组件 TS:
ngOnDestroy(){ this.saveData(); }
第二个组件 TS:
ngOnInit(){ this.getSavedData(); }
第一个执行方法的服务调用:
saveData(obj) {
return this.http.post(environment.appUrl + 'saveDataApi', obj).toPromise()
.then(res => <any>res); }
这两种方法都按编码顺序触发。但我的问题是 this.getSavedData(); 在 Save 方法的数据库事务完成并返回响应之前完成了它的数据库事务。
我需要“保存”方法的服务调用应该等待数据库响应,然后继续执行其他组件中的“获取”方法。
简而言之:除非this.SaveData(); 完成其整个执行并返回响应,否则不应执行this.getSavedData();。
我错过了什么?
【问题讨论】:
-
您能告诉我您的“getSavedData()”方法以及如何调用该方法吗?
-
TS : getSavedData() { this.dataService.getSavedData(this.obj).then(data => { if (data.lstRespObj[0] != null && data.lstRespObj[0].长度 > 0) { this.fetchedData = data.lstRespObj[0]; } }); } 服务:getSavedData(obj) { return this.http.post(environment.appUrl + 'getDataApi', obj).toPromise() .then(res =>
res); }
标签: angular asynchronous angular5 angular-observable