Is store.dispatch in Redux synchronous or asynchro

2020-01-25 01:42发布

问题:

I realize this is a basic question but I had no luck finding the answer elsewhere.

Is store.dispatch synchronous or asynchronous in Redux ?

In case it is asynchronous is there a possibility to add a callback after the action has been propagated as it is possible with React ?

回答1:

AFAIK, dispatching action is synchronous. In case if you are willing to address the asynchronous call, you can use the thunk-middleware in redux, where dispatch is provided as a callback function which you can invoke as per your convenience. For more info, checkout this answer on SO by Author itself: How to dispatch a Redux action with a timeout?



回答2:

Nobody knows better than the code itself. =) As you can see dispatch is absolutely synchronous. The only warning here is that store enhancers can (and do) substitute dispatch method. For example, take a look at applyMiddleware enhancer, it lets you jack middlewares in by replacing default dispatch method with it's own implementation. Though I never saw any Redux enhancer which would actually remove synchronous nature of dispatch.