javascript - 关于Vue单文件组件的this.$store.commit()问题
高洛峰
高洛峰 2017-04-11 12:48:45
[JavaScript讨论组]

先贴源代码:
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()里面运行,也就是回调才运行,导致没有loading效果(true和false同时运行了)
不过打印的时候确实 先1 再 2 而且我还加了测试运行这段代码的时间,大概间隔1秒左右
也就是打印1之后,等1秒左右再打印出2

问题是:为什么vm.$store.commit("UPDATE_LOADING", true); 没有先运行呢?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(1)
PHPz

loading是否加了transition.
试下用setTImeout代替imgOnload并且时间设置长一点看效果

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号