title: How to run redux-saga middleware on the any dispatch action?
body: <p>I have defined following redux saga middleware function in 'usersaga.js'</p>
  
  <pre><code>import {call, put, takeEvery, takeLatest} from "redux-saga/effects";
  import {REQUEST_API_DATA, receiveApiData} from '../store/actions';
  
  import userServiceObject from '../services/user.service';
  
  
  // Worker Saga function will be fired on USER_FETCH_ACTIONS
  
  export function* getApiData(action){
      console.log(action)
      try{
          // Do Api Call
          const data = yield call(userServiceObject.getUsers);
          console.log(data.data);
          yield put(receiveApiData(data.data));
      }
      catch(error){
          console.log("this is error part and executing");
          console.log(error);
      }
  }
  
  </code></pre>
  
  <p>In the 'index.js' file I use "run" method to run above function getApiData</p>
  
  <pre><code>import React from 'react';
  import ReactDOM from 'react-dom';
  import {createStore, combineReducers, applyMiddleware } from 'redux';
  import {Provider} from 'react-redux';
  import './index.css';
  import App from './App';
  import * as serviceWorker from './serviceWorker';
  
  import contactReducer from './store/reducers/userlist';
  
  // For Creating Saga and connecting store to saga middleware
  import createSagaMiddleware from 'redux-saga';
  import {getApiData} from './sagas/usersaga';
  
  const sagaMiddleware = createSagaMiddleware();
  
  const rootReducer = combineReducers({
      res: contactReducer
  })
  
  const store = createStore(rootReducer, applyMiddleware(sagaMiddleware));
  
  sagaMiddleware.run(getApiData);
  
  ReactDOM.render(&lt;Provider store={store}&gt; &lt;App /&gt; &lt;/Provider&gt;, document.getElementById('root'));
  
  
  
  serviceWorker.unregister();
  </code></pre>
  
  <p>It successfully getting the data from the api and I successfully handle the data in acttion generated by 'receiveApiData' action generator function.
  <br/>
  I want to call the getApiData function on a action which is genrated by function 'requestApiData' which is dispatched by. The action name is '{type: REQUEST_API_DATA}'
  <br/>
  How to run Our  getApiData on a action which is dispatched.
  My userlist reducer file look like below</p>
  
  <pre><code>import * as actionTypes from "../actions";
  
  const initialState = {
      value: '',
      results: []
  };
  
  const reducer = (state = initialState, action) =&gt; {
      switch(action.type){
          case actionTypes.STORE_CONTACTS:   // This is for storing all contacts in the state here
              console.log(action.values)
              return {
                  ...state,
                  results: action.values
              }
  
          case actionTypes.RECEIVE_API_DATA:  
              console.log(action);
              return{
                  ...state,
                  results: action.contacts
              }
          case actionTypes.DELETE_CONTACT:
              return {
                  ...state,
                  results: action.value
              }
          case actionTypes.ADD_CONTACT:
              // perform add action to the database, update state and return All new data
              return {
                  ...state,
  
              }
          case actionTypes.EDIT_CONTACT:
              return {
                  ...state,
              }
          default:
              return state;
  
      }
  };
  
  export default reducer;
  </code></pre>