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 help, ask a question on StackOverflow.


For older versions:


Please reach out to us if you have any questions or comments.

Patrick Burtchaell (pburtchaell):

Thomas Hudspith-Tatham (tomatau):


Code licensed with the MIT License (MIT).

Documentation licensed with the CC BY-NC License.

Last updated