Est store.dispatch dans Redux synchrone ou asynchrone


104

Je me rends compte que c'est une question fondamentale mais je n'ai pas eu la chance de trouver la réponse ailleurs.

Est-ce store.dispatchsynchrone ou asynchrone Redux?

Dans le cas où il est asynchrone, est-il possible d'ajouter un rappel après que l'action a été propagée comme c'est possible avec React?


Notez que l'état est mis à jour synchrone ( getState()) mais mapStateToPropspas. Il en this.props.valueva de même pour l'ancienne valeur, tandis que getState().valuela nouvelle est la nouvelle - codesandbox.io/s/reactredux-forked-0m5eo?file=/Page.js
Mosh Feu le

Réponses:



69

Personne ne sait mieux que le code lui-même . =) Comme vous pouvez le voir, dispatchc'est absolument synchrone. Le seul avertissement ici est que le magasin enhancerspeut (et fait) remplacer la dispatchméthode. Par exemple, jetez un œil à applyMiddlewareEnhancer , il vous permet de connecter des middlewares en remplaçant la dispatchméthode par défaut par sa propre implémentation. Bien que je n'ai jamais vu de Redux enhancerqui supprimerait réellement la nature synchrone de dispatch.


1
Vous devez mettre à jour le lien apply middleware vers https://github.com/reduxjs/redux/blob/master/src/applyMiddleware.ts#L19 (en raison de la migration redux de js -> ts, je ne peux pas faire la modification puisqu'il est <6 caractères). Ou peut-être devriez-vous référencer un commit lorsqu'ils utilisaient encore js comme dans votre code itselflien, ce qui serait des liens morts en raison de l'aspect «permalien» des commits.
user7413060
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.