我在一个子组件中methods里有一个点击函数
takehash(index){
let hash = this.searchList[index].hash;
this.$store.commit('playvideo', hash);
console.log(this.$store.state.box.Url);
}
store的mutations里有一个方法
playvideo(state,hash){
Vue.http.get("json.php"+hash).then(res=> {
let jsonObj = res.data;
state.box.Url= jsonObj.url;
console.log('no');
});
}
但是我发现我想要的过程是commit playvideo方法后,执行playvideo方法后,console出来他的url,
但是结果却是先console出来url,然后才执行playvideo方法,mutations不是同步方法吗,为什么会延迟执行,我刚接触vuex,求大神解决
淡淡烟草味2017-05-18 10:52:21
mutations不是同步方法吗
mutations 同步的意思是你要保证 mutations 里的方法是同步的,并不是 mutations 把你异步的方法变成同步。
异步方法放在 actions 里