Redux Promise Middleware enables simple, yet robust handling of async action creators in Redux.
const asyncAction = () => ({
type: 'PROMISE',
payload: new Promise(...),
Given a single action with an async payload, the middleware transforms the action to a separate pending action and a separate fulfilled/rejected action, representing the states of the async action.
The middleware can be combined with Redux Thunk to chain action creators.
const secondAction = (data) => ({
type: 'SECOND',
payload: {...},
const firstAction = () => {
return (dispatch) => {
const response = dispatch({
type: 'FIRST',
payload: new Promise(...),
response.then((data) => {

Documentation and Help

Heads Up: Version 6 includes some breaking changes. Check the upgrading guide for help.


For bug reports and feature requests, file an issue on GitHub.


For older versions:
  • ​5.x​
  • ​4.x​
  • ​3.x​
  • ​2.x​
  • ​1.x​


Please reach out to us if you have any questions or comments.
Patrick Burtchaell (pburtchaell):
Thomas Hudspith-Tatham (tomatau):