猿问

为什么我调用vuex中的mutation方法,得到的却是异步执行

我在一个子组件中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,求大神解决


米琪卡哇伊
浏览 1595回答 1
1回答

HUH函数

理论上mutations只用来放同步的方法.而不能使用异步.而你的playvideo里面放了个异步方法.那执行结果肯定是异步啊.
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答