title: redux-saga takeEvery only called with setTimeout
body: <p>I have a container that dispatches the following action: </p>
  
  <pre><code>const mapDispatchToProps = (dispatch, ownProps) =&gt; { 
      return { 
          getPageTree: (siteId) =&gt; { 
              dispatch(getPageTree(siteId)); 
          }
      }
  } 
  
  const explorer = connect(
      mapStateToProps, 
      mapDispatchToProps
  )(Explorer); 
  </code></pre>
  
  <p>In my component (to which props are sent through the container) I've added: </p>
  
  <pre><code>componentWillMount(){ 
      setTimeout(() =&gt; this.props.getPageTree()); 
  }
  </code></pre>
  
  <p>The saga: </p>
  
  <pre><code>function* fetchPageTree(action){ 
      try{ 
          const data = yield call(Api.fetchPageTree, action.payload.url); 
          yield put({type: 'FETCH_SUCCEEDED', data}); 
      }catch(error){ 
          yield put({type: 'FETCH_FAILED', error})
      } 
  }
  
  export function* watchFetchData(){ 
      console.log('watch'); 
      yield* takeEvery('GET_PAGETREE', fetchPageTree); 
      console.log('finish watch'); 
  }
  </code></pre>
  
  <p>The saga watcher calls the <code>fetchPageTree</code> properly using <code>takeEvery</code> when applying <code>setTimeout</code> in the component, but doesn't execute <code>fetchPageTree</code> without.<br>
  No error gets thrown either.  </p>
  
  <p>Any idea about the cause? </p>
  
  <p>Edit:<br>
  The index.es6 file contains the following initialization logic, but is overall standard: </p>
  
  <pre><code>const sagaMiddleware = createSagaMiddleware(); 
  const store = createStore(
      appReducers, //Combined reducers 
      applyMiddleware(sagaMiddleware)
  ); 
  
  render(
      &lt;Provider store={store}&gt;
          &lt;App /&gt;
          &lt;/Provider&gt;, 
      document.getElementById('zp-app')
  )
  sagaMiddleware.run(rootSaga); 
  </code></pre>