我有一个 Angular 应用程序以及 Nrwl 的 NgRx 和 Nx。Nx 提供了一些“数据持久化”功能,可以帮助您获取、乐观和悲观更新以及处理导航,但我不确定为什么要使用它们而不是普通管道。
下面是 StackBlitz 上的一个示例,显示了一些效果与optimisticUpdate
其他pessimisticUpdate
效果的结合,以及在没有这些效果的情况下执行相同操作的其他效果。
问题是 - 这些 Nx 功能提供什么优势?
作为参考,这里是来自 StackBlitz 的效果文件:
@Injectable()
export class CarsEffects {
updateCarOptimistic = createEffect(() =>
this.actions.pipe(
ofType(CarsActions.updateCarOptimistic),
switchMap(({ selected, oldSelected, mockError }) =>
this.carsService.updateCar(selected, mockError).pipe(
map(() => CarsActions.updateCarOptimisticSuccess()),
catchError(error => {
this.store.dispatch(
CarsActions.updateCarOptimisticFailure({ oldSelected, error })
);
return of(null);
})
)
)
)
);
updateCarOptimisticWithNx = createEffect(() =>
this.actions.pipe(
ofType(CarsActions.updateCarOptimisticWithNx),
optimisticUpdate({
run: ({ selected, mockError }) =>
this.carsService
.updateCar(selected, …
Run Code Online (Sandbox Code Playgroud)