先貼源代碼:lowpolyEvent(){ var vm = this;
vm.$store.commit("UPDATE_LOADING", true); console.log("1"); console.time("for-test"); var img = new Image();
img.src = vm.imgUrl;
img.onload = function () {
vm.parse(this).then((value) => {
vm.$store.commit("UPDATE_LOADING", false); console.log("2"); console.timeEnd("for-test");
vm.imgUrl = value;});}}vm.$store.commit("UPDATE_LOADING", true); 這段代碼是顯示loading的vm.$store.commit("UPDATE_LOADING", false);這段是隱藏但是奇怪的是,vm.$store.commit("UPDATE_LOADING", true)這段代碼是在vm.parse(this).then()里面運行,也就是回調(diào)才運行,導(dǎo)致沒有l(wèi)oading效果(true和false同時運行了)不過打印的時候確實 先1 再 2 而且我還加了測試運行這段代碼的時間,大概間隔1秒左右也就是打印1之后,等1秒左右再打印出2問題是:為什么vm.$store.commit("UPDATE_LOADING", true); 沒有先運行呢?
關(guān)于Vue單文件組件的this.$store.commit()問題
縹緲止盈
2018-10-12 11:14:39