redux middleware

JavaScript
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);
    }
  }
}const loggingMiddleware = function(store) {
  // Called when calling applyMiddleware so
  // our middleware can have access to the store

  return function(next) {
    // next is the following action to be run
    // after this middleware

    return function(action) {
      // finally, this is where our logic lives for
      // our 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

Source

Also in JavaScript: