text: Q:
  
  Redux-Saga does not run
  
  I'm trying to introduce redux-saga into a react app already using redux.
  My first goal is to introduce saga when the user is trying to login.
  The login form, will dispatch a 'USER_LOGIN_REQUEST', and the saga's responsibility is to call the backend, then dispatch a 'USERS_LOGIN_SUCCESS' when complete.
  I can see the 'USER_LOGIN_REQUEST' is the redux devtool but not 'USERS_LOGIN_SUCCESS'.
  I see no error in the console log, and debugger is not breaking in the saga. 
  Any idea why it's not working? 
  store.js
  import { combineReducers, createStore, applyMiddleware } from 'redux'
  import * as Reducers from './reducers'
  import { composeWithDevTools } from 'redux-devtools-extension';
  import createSagaMiddleware from 'redux-saga'
  import rootSaga from './sagas'
  
  const rootReducer = combineReducers({
      login: Reducers.loginReducer
  })
  
  const sagaMiddleware = createSagaMiddleware();
  
  export default createStore(
    rootReducer,
    composeWithDevTools(
      applyMiddleware(sagaMiddleware)
    )
  )
  
  sagaMiddleware.run(rootSaga);
  
  rootSaga.js
  import { all, call, delay, spawn } from 'redux-saga/effects'
  import { userLoginRequestSaga } from "./loginSaga";
  
  const makeRestartable = (saga) => {
      return function* () {
        yield spawn(function* () {
          while (true) {
            try {
              yield call(saga);
              console.error("unexpected root saga termination. The root sagas are supposed to be sagas that live during the whole app lifetime!",saga);
            } catch (e) {
              console.error("Saga error, the saga will be restarted",e);
            }
            yield delay(1000); // Avoid infinite failures blocking app TODO use backoff retry policy...
          }
        })
      };
  };
  
  const sagas = [
      userLoginRequestSaga
  ].map(makeRestartable);
  
  export default function* rootSaga() {
      yield sagas.map(saga => call(saga));
  }
  
  loginSaga.js 
  import { call, delay, spawn, put, takeEvery } from 'redux-saga/effects'
  
  export function* getLoginDetails() {
    //yield delay(100)
    yield put({ type: 'USERS_LOGIN_SUCCESS' })
  }
  
  export function* userLoginRequestSaga() {
    yield takeEvery('USER_LOGIN_REQUEST', getLoginDetails)
  }
  
  package.json
  {
    "name": "MyApp",
    "version": "0.1.0",
    "private": true,
    "dependencies": {
      "react": "^16.8.5",
      "react-dom": "^16.8.5",
      "react-redux": "^6.0.1",
      "react-router-dom": "^5.0.0",
      "react-scripts": "2.1.8",
      "redux": "^4.0.1",
      "redux-actions": "^2.6.5",
      "redux-devtools-extension": "^2.13.8",
      "redux-saga": "^1.0.2"
    },
    "scripts": {
      "start": "react-scripts start",
      "build": "react-scripts build",
      "test": "react-scripts test",
      "eject": "react-scripts eject"
    },
    "eslintConfig": {
      "extends": "react-app"
    },
    "browserslist": [
      ">0.2%",
      "not dead",
      "not ie <= 11",
      "not op_mini all"
    ]
  }
  
  Thanks for your help.
  
  A:
  
  I think executing array of effects was deprecated in v1 of redux-saga.
  Try replacing yield sagas.map(saga => call(saga));
  with yield all(sagas.map(saga => call(saga)));
  
  