首页 > 解决方案 > 尽管 DELETE 出错,实体仍从缓存中删除

问题描述

我正在使用 Angular 8@ngrx/data来管理我的实体。当我启动失败的删除操作(服务器返回 500)时,实体会从 ngrx 客户端缓存中删除,尽管它没有在服务器上被删除。

如何防止实体因错误而从缓存中删除?或者如何在出错时将(非)删除的实体重新添加回缓存?

标签: angularngrxangular8ngrx-entityangular-ngrx-data

解决方案


使用悲观保存https://ngrx.io/guide/data/entity-change-tracker#save-errors

操作名称以 _OPTIMISTIC 结尾的 EntityAction 启动乐观保存。

当保存是“乐观的”时,许多应用程序更容易构建,因为这些更改可以立即用于监视集合选择器的应用程序代码。应用程序不必等待确认实体操作在服务器上成功。

在服务器确认保存成功之前,悲观保存不会更新存储,然后 NgRx Data 将其转换为更新集合的“SUCCESS”操作。悲观保存时,更改将无法在商店中使用


推荐阅读