Ich habe eine Klickfunktion in Methoden in einer untergeordneten Komponente
takehash(index){
let hash = this.searchList[index].hash;
this.$store.commit('playvideo', hash);
console.log(this.$store.state.box.Url);
}
Es gibt eine Methode in den Mutationen von Store
playvideo(state,hash){
Vue.http.get("json.php"+hash).then(res=> {
let jsonObj = res.data;
state.box.Url= jsonObj.url;
console.log('no');
});
}
Aber ich fand, dass der Prozess, den ich wollte, darin bestand, die Playvideo-Methode festzuschreiben, und nach der Ausführung der Playvideo-Methode kam die Konsole mit ihrer URL heraus.
Aber das Ergebnis war, dass die Konsole zuerst die URL und dann das Playvideo herausgab Methode wurde ausgeführt. Sind Mutationen keine synchrone Methode? Ich bin neu bei Vuex, bitte helfen Sie mir, das Problem zu lösen
理论上mutations只用来放同步的方法.而不能使用异步.
而你的playvideo里面放了个异步方法.
那执行结果肯定是异步啊.
mutations 同步的意思是你要保证 mutations 里的方法是同步的,并不是 mutations 把你异步的方法变成同步。
异步方法放在 actions 里