Redux 注销操作后Ngrx取消已调度的操作
如何阻止在ngrx中注销操作后触发的所有已调度操作?是否有某种根调度器来处理此逻辑?我的回答基于此,希望我正确理解了您的需求 几天前,我有一个类似的要求:根据应用程序状态,防止任何操作从运行效果中分派。Redux 注销操作后Ngrx取消已调度的操作,redux,ngrx,Redux,Ngrx,如何阻止在ngrx中注销操作后触发的所有已调度操作?是否有某种根调度器来处理此逻辑?我的回答基于此,希望我正确理解了您的需求 几天前,我有一个类似的要求:根据应用程序状态,防止任何操作从运行效果中分派。 另外,我需要一些东西在很多效果中使用这个逻辑,所以它必须简单易用 我的解决方案是在运行请求完成后过滤效果链。因此,一旦用户注销,任何响应都会被忽略 首先,我创建了一个helper类,它封装了这个“忽略”逻辑: 效果助手.ts 从'@angular/core'导入{Injectable}; 从'
另外,我需要一些东西在很多效果中使用这个逻辑,所以它必须简单易用
我的解决方案是在运行请求完成后过滤效果链。因此,一旦用户注销,任何响应都会被忽略 首先,我创建了一个helper类,它封装了这个“忽略”逻辑: 效果助手.ts
从'@angular/core'导入{Injectable};
从'@ngrx/Store'导入{Store};
从“rxjs/Observable”导入{Observable};
从'app/reducers/root.reducer'导入{AppState};
@可注射()
导出类EffectHelper{
构造函数(私有存储:存储操作员)
(不要忘记在您的模块中提供EffectHelper
,就像您使用任何其他服务一样)。我的回答是基于此,希望我正确理解了您的要求
几天前,我有一个类似的要求:根据应用程序状态,防止任何操作从运行效果中分派。
另外,我需要一些东西在很多效果中使用这个逻辑,所以它必须简单易用
我的解决方案是在运行请求完成后过滤效果链。因此,一旦用户注销,任何响应都会被忽略
首先,我创建了一个helper类,它封装了这个“忽略”逻辑:
效果助手.ts
从'@angular/core'导入{Injectable};
从'@ngrx/Store'导入{Store};
从“rxjs/Observable”导入{Observable};
从'app/reducers/root.reducer'导入{AppState};
@可注射()
导出类EffectHelper{
构造函数(私有存储:存储操作员)
(不要忘记在模块中提供EffectHelper
,就像您使用任何其他服务一样).您无法阻止直接发送到商店的操作。请参阅问题的注释。我认为他想取消运行效果,而不是真正的操作。可能类似于,如果您发送一个操作更新\u PROFILE
,有效负载{newName:'Some newName'}
,您的一个特效捕捉到它并对API进行HTTP调用。但假设请求需要很长时间,用户单击断开连接。如果上一个请求在您断开连接后结束,它仍会更新您的(已清理)store.@Maxime yes这正是我现在面临的问题。你不能阻止直接发送到store的操作。请参阅有关问题的评论。我认为他想取消运行效果,而不是真正的操作。可能就像你发送一个操作更新\u PROFILE
和有效负载{newName:'Some newName'}
,您的一个特效捕捉到它并对API进行HTTP调用。但假设请求花费了很长时间,用户单击了“断开连接”。如果上一个请求在您断开连接后结束,它仍会更新(已清理的)存储。@Maxime yes这正是我现在面临的问题