在 ngOnDestroy 函数中调用时如何等待 api 调用完成?
How to wait for api call to complete when called in ngOnDestroy function?
我有一个场景,我必须在销毁特定组件之前将数据发送到 api(数据库)。正如在 angular2 生命周期中描述的那样,在组件被销毁之前执行一个方法,它被称为 ngOnDestroy
。但正如文档中所指定的那样,这是一个无效函数,因此它不会等待某些结果 return.
我的问题是如何在 ngOnDestroy 函数中执行对 api 的调用并等待它完成?
如果我只调用更新功能它就可以工作,但是当我从一个组件路由到另一个组件时,第一个组件的数据尚未更新,而下一个组件加载旧数据(如果我点击刷新然后我得到新数据) .所以问题是我不能等待更新功能完全执行,然后允许组件销毁并路由到下一个组件,该组件将加载正确的更新数据:
updateData(data: any, callback?: Function) {
this.apiService.update(data).then(response => {
callback(response);
}
}
ngOnDestroy() {
this.updateData(this.data);
}
// Maybe i could somehow use callback functionality to postpone execution of ngOnDestroy function
ngOnDestroy() {
this.updateData(this.data, response => {
});
}
或者有其他方法可以解决这个问题吗?
我有一个场景,我必须在销毁特定组件之前将数据发送到 api(数据库)。正如在 angular2 生命周期中描述的那样,在组件被销毁之前执行一个方法,它被称为 ngOnDestroy
。但正如文档中所指定的那样,这是一个无效函数,因此它不会等待某些结果 return.
我的问题是如何在 ngOnDestroy 函数中执行对 api 的调用并等待它完成?
如果我只调用更新功能它就可以工作,但是当我从一个组件路由到另一个组件时,第一个组件的数据尚未更新,而下一个组件加载旧数据(如果我点击刷新然后我得到新数据) .所以问题是我不能等待更新功能完全执行,然后允许组件销毁并路由到下一个组件,该组件将加载正确的更新数据:
updateData(data: any, callback?: Function) {
this.apiService.update(data).then(response => {
callback(response);
}
}
ngOnDestroy() {
this.updateData(this.data);
}
// Maybe i could somehow use callback functionality to postpone execution of ngOnDestroy function
ngOnDestroy() {
this.updateData(this.data, response => {
});
}
或者有其他方法可以解决这个问题吗?