title: strange console.log output with vuex
body: <p>i have some simple vuex store with</p>
  <pre><code>const state = {
      todos : []
  }
  
  const getters = {
      allTodos: (state) =&gt; state.todos
  }
  
  const actions = {
       async fetchTodos({ commit }) {
          console.log(this.state.todos)
          if(state.todos.length == 0) {
                  const response = await axios.get('https://jsonplaceholder.typicode.com/todos?_limit=5')
                  commit('setTodos', response.data)
          }         
      }
  }
  
  const mutations = {
      setTodos(state, todos) {
          state.todos = todos
      }
  }
  </code></pre>
  <p>why does console.log in fetchTodos action output populated todos before it was populated with axios.get and setTodos mutation?</p>
  <p>when i write</p>
  <pre><code>const actions = {
       fetchTodos({ commit }) {
          console.log(this.state.todos)
          setTimeout(async () =&gt; {
              if(state.todos.length == 0) {
                  const response = await axios.get('https://jsonplaceholder.typicode.com/todos?_limit=5')
                  commit('setTodos', response.data)
              }
          }, 10000)    
      }
  }
  </code></pre>
  <p>output is normal with empty todos in state</p>