NgRx-减速器和效果器的执行顺序

时间:2020-01-31 01:35:01

标签: angular ngrx

我有一个使用NgRx 8.3.0的Angular 8应用程序

对于动作之一,我需要在效果之前执行化简,因为效果取决于还原状态。 NgRx是否保证该命令,或者有办法强制执行该命令?

1 个答案:

答案 0 :(得分:7)

编辑:

在执行了该动作的所有减速器后,NgRx效果会触发。该顺序得到保证。还原状态是​​效果的有效负载。

在NgRx效果构建项目的lifecycle_hooks.d.ts中找到了以下注释:

默认情况下,效果会合并并订阅到商店。实现OnRunEffects接口以控制已解决效果的生命周期。

https://github.com/ngrx/effects-builds/blob/master/src/lifecycle_hooks.d.ts

效果订阅了商店,并且在状态商店更改时触发。因为我们知道状态更改是由化简器处理的,所以我们可以合理地得出结论:化简器将始终在效果之前运行。

此外,从Google开发人员专家兼NgRx核心团队成员Brandon Roberts找到了一个答案,确认该订单是有保证的。 https://github.com/ngrx/platform/issues/162