出于这个问题的目的,我将尝试简化应用程序。假设我们有两个页面:
进入/edit
页时,对后端执行了一个请求beginEdit
。当离开/edit
页面(即转到/home
)时,向后端执行了endEdit
请求。我有一个canDeactivate
卫士,可捕获导航并提示用户是否要将参数设置为true或false(此示例中的参数无关紧要)。问题是,当我模拟缓慢的网络速度并导航到/home
(或只是按回),然后快速向前按浏览器时,请求已通过,但组件并未销毁。因此,我在页面上所做的任何事情都不再有效。我无法将请求移至ngOnDestroy()
,因为我必须确保请求已通过。
有解决这个问题的好方法吗?
编辑:我添加了一个sample。
Component Two
按钮Component One
按钮在endEdit
页面上调用Component Two
API之后,它应该始终销毁组件。