Node.js 在MEAN stack应用程序中成功更新后,如何显示最新/更新的值?
我正在尝试更新我的MEAN stack应用程序中的记录 下面是我的一些更新代码:Node.js 在MEAN stack应用程序中成功更新后,如何显示最新/更新的值?,node.js,angular,mean-stack,Node.js,Angular,Mean Stack,我正在尝试更新我的MEAN stack应用程序中的记录 下面是我的一些更新代码: updateBusiness(person_name, business_name, business_gst_number) { this.route.params.subscribe(params => { this.bs.updateBusiness(person_name, business_name, business_gst_number, params['id']
updateBusiness(person_name, business_name, business_gst_number) {
this.route.params.subscribe(params => {
this.bs.updateBusiness(person_name, business_name, business_gst_number, params['id']);
this.router.navigate(['business']);
});
}
上面的代码正在成功更新记录,因为我可以在执行此代码后搜索mongodb
this.router.navigate(['business'])代码>上面的代码将路由到显示记录的页面
下面是我导航到业务
路线时运行的代码:
ngOnInit() {
this.bs
.getBusinesses()
.subscribe((data: Business[]) => {
this.businesses = data;
});
}
有时在更新后,会显示新的/更新的值
但有时会显示较旧的值。但是,当我刷新页面时,会显示更新的值
有人能告诉我为什么更新后才会显示最新的值吗?由于更新是一个异步操作,所以您并没有按顺序进行操作。您正在启动更新,然后在更新完成前立即导航。要解决此问题,请订阅组件中的更新并在完成后导航:
updateBusiness(person_name, business_name, business_gst_number, id) {
const obj = {
person_name: person_name,
business_name: business_name,
business_gst_number: business_gst_number
};
return this //return the observable
.http
.post(`${this.uri}/update/${id}`, obj);
}
组成部分:
updateBusiness(person_name, business_name, business_gst_number) {
this.route.params.subscribe(params => {
this.bs.updateBusiness(person_name, business_name, business_gst_number, params['id'])
.subscribe(res => this.router.navigate(['business'])); // subscribe and navigate when done
;
});
}
这保证在更新完成之前不会进行导航