why do we need middleware in redux code example

Example 1: redux middleware

A Redux middleware is a function returning a function, which takes next as a
 parameter. Then the inner function returns another function which takes action
as a parameter and finally returns next(action). Here's how it looks like:

function Middleware() {
  return function(next){
    return function(action){
      // do your stuff
      return next(action);
    }
  }
}

Example 2: react redux middleware

import * as types from './types';

export const initialState = {
  currentTime: new Date().toString(),
}

export const reducer = (state = initialState, action) => {
  switch(action.type) {
    case types.FETCH_NEW_TIME:
      return { ...state, currentTime: action.payload}
    default:
      return state;
  }
}

export default reducer