2017-05-31 11 views
0

私は、すべてのチュートリアルで突然変異が非同期コードを使用できないと言っているのはなぜかと思いました。なぜ、非同期の突然変異があるのですか?

私はそれを試してみましたが、それは明らかに動作します:同じ動作で

mutations: { 
    clearTodo(state) { setTimeout(() => state.todo = '', 1000) } 
}, 

結果を通り:

mutations: { 
    clearTodo(state) { state.todo = '' } 
}, 
actions: { 
    clearTodoAction({commit}) { setTimeout(() => commit('clearTodo'), 1000)} 
} 
+1

このパターンは、あなたの状態の変化の予測可能性を保証します。さもなければ、非同期呼び出しは互いに予期しない順序で結果を書き換えることができます。 – wostex

+1

あなたはEvan Youがなぜ突然変異が同期でなければならないのか、そして非同期で動くべきなのかをここで見ることができます(https://github.com/vuejs/vuex/issues/42)。 –

答えて

関連する問題