Объект удален из кэша, несмотря на ошибку при удалении
Я использую Angular 8 с @ngrx/data
управлять своими сущностями. Когда я инициирую операцию удаления, которая завершается неудачно (сервер возвращает 500), объект удаляется из кэша на стороне клиента ngrx, несмотря на то, что он не удаляется на сервере.
Как предотвратить ошибку при удалении объекта из кэша? Или как мне повторно добавить (не) удаленную сущность обратно в кеш при ошибке?
1 ответ
Используйте пессимистическое сохранение https://ngrx.io/guide/data/entity-change-tracker
EntityActions, чьи имена операций заканчиваются на _OPTIMISTIC, запускают оптимистическое сохранение.
Многие приложения легче создавать, когда сохранения "оптимистичны", потому что изменения сразу же доступны для кода приложения, который отслеживает селекторы коллекций. Приложению не нужно ждать подтверждения того, что операция с объектом на сервере выполнена успешно.
Пессимистичное сохранение не обновляет хранилище до тех пор, пока сервер не подтвердит, что сохранение выполнено успешно, и данные NgRx затем превращаются в действие "УСПЕХ", которое обновляет коллекцию. С пессимистичным сохранением изменения не будут доступны в магазине