Tengo una aplicación Angular 8 que usa NgRx 8.3.0
Para una de las acciones, necesito que los reductores se ejecuten antes que los efectos, porque el efecto depende del estado reducido. ¿NgRx garantiza ese pedido o hay alguna forma de forzar ese pedido?
Editar:
Los efectos de NgRx se activan después de que se hayan ejecutado todos los reductores de esa acción. Ese orden está garantizado. El estado reducido es la carga útil de tus efectos.
Encontré el siguiente comentario en lifecycle_hooks.d.ts en el proyecto de compilación de efectos NgRx:
De forma predeterminada, los efectos se fusionan y se suscriben a la tienda. Implemente la interfaz OnRunEffects para controlar el ciclo de vida de los efectos resueltos.
https://github.com/ngrx/effects-builds/blob/master/src/lifecycle_hooks.d.ts
Los efectos se suscriben a la tienda y se activan cuando cambia la tienda de estado. Como sabemos que los cambios en el estado son manejados por el reductor, podemos concluir razonablemente que los reductores siempre se ejecutarán antes que los efectos.
Además, encontré una respuesta de Brandon Roberts, un experto en desarrollo de Google y miembro del equipo central de NgRx, que confirma que el pedido está garantizado. https://github.com/ngrx/platform/issues/162