title: How to select after put in Saga?
body: <p>Component</p>
  
  <pre><code>import * as React from 'react';
  import { connect } from 'react-redux';
  import { bindActionCreators } from 'redux';
  import { action_creators } from './redux';
  
  class App extends React.PureComponent {
      render() {
          return [
              &lt;div&gt;{this.props.number}&lt;/div&gt;,
              &lt;button type="button" onClick={() =&gt; this.props.set_number_async({ number:10 })}&gt;increase_number_async&lt;/button&gt;
          ]
      }
  }
  
  function map_state_to_props(state) {
      return {
          number: state.number;
      }
  }
  
  function map_dispatch_to_props(dispatch) {
      return bindActionCreators({
          set_number_async: action_creators.get_action_of_set_number_async
      }, dispatch);
  }
  
  export default connect(map_state_to_props, map_dispatch_to_props)(App);
  </code></pre>
  
  <p>Redux</p>
  
  <pre><code>import { Action, createAction, handleActions } from 'redux-actions';
  import { delay } from 'redux-saga';
  import { all, put, select, takeEvery } from 'redux-saga/effects';
  
  export const action_creators = {
      get_action_of_set_number: createAction&lt;{ number:number }&gt;('set_number'),
      get_action_of_set_number_async: createAction&lt;{ number:number }&gt;('set_number_async'),
      get_action_of_set_number_async2: createAction&lt;{ number: number }&gt;('set_number_async2')
  };
  
  const state = {
      number: 0
  }
  
  function* set_number_async(action: Action&lt;{ number:number }&gt;) {
      let state = yield select((state) =&gt; state.number);
  
      console.log('first', state); // 0
  
      yield delay(1000);
      yield put(action_creators.get_action_of_set_number_async2(action.payload!));
  
      state = yield select((state) =&gt; state.number);
  
      console.log('second', state); // 0
  }
  
  function* set_number_async2(action: Action&lt;{ number: number }&gt;) {
      yield put(action_creators.get_action_of_set_number(action.payload!));
  }
  
  export function* saga() {
      yield all([
          takeEvery('set_number_async', set_number_async),
          takeEvery('set_number_async2', set_number_async2)
      ]);
  }
  
  export default handleActions({
      set_number: (state, action) =&gt; {
          const new_number = action.payload!.number;
          return { ...state, number:new_number };
      }
  }, state);
  </code></pre>
  
  <p><a href="https://codesandbox.io/s/q441ylnn9" rel="nofollow noreferrer">example</a></p>
  
  <p>I expected that 10 was printed by second console.log() when I click a button, but 0 was printed.</p>
  
  <p>What did I do worng? I tried to find it out in a tutorial, but I didn't get a solution.</p>
  
  <p>I want to know how to re-select new state dispatched.</p>
  
  <p>please could you help me? Thansk for reading. :)</p>