vue 钩子函数 使用async await
示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>vue 钩子函数 使用async await</title>
</head>
<body>
<div id="app">
<div v-for="item in list">
{{ item }}
</div>
</div> <script src="https://cdn.bootcss.com/vue/2.5.17/vue.min.js"></script>
<script type="text/javascript">
var app = new Vue({
el: '#app',
data: {
list: [1, 2, 3]
},
async created(){
// 最先输出3
console.log(3)
await setTimeout(()=>{
// 1输出的时间依赖于 定时间隔
console.log(1)
},100)
// 5的输出顺序也不是在1后面
console.log(5)
},
async mounted(){
// 其次输出4
console.log(4)
await setTimeout(()=>{
// 2输出的时间依赖于 定时间隔
console.log(2)
},100)
// 6的输出顺序也不是在2后面
console.log(6)
}
})
</script> </body>
</html>
通过设置created和mounted中定时时间不同,查看控制台输出顺序。
完全乱套!
只能保证最先输出3 其次输出4。
await后的 5 和 6 也不是在await后输出。
结论是:所有的钩子函数都只是在指定时间执行而已,框架并不关心它们执行的结果,所以你要做的是将async和await放到真正有异步的methods的方法中。
更新!上面代码啪啪打脸!
await后不能接收非Promise对象。
请参考:https://www.jianshu.com/p/2afb088abd08
await setTimeout(...) 或者 await exec(...) 是不行滴,await 不是什么都等,它等待的只是Promise,你如果没有给他返回个Promise,那它还是会继续向下执行。
所以 await 等待的不是所有的异步操作,等待的只是Promise。
所以await 挡不住啊!
vue 钩子函数 使用async await的更多相关文章
- Vue钩子函数生命周期实例详解
vue生命周期简介 Vue实例有一个完整的生命周期,也就是从开始创建.初始化数据.编译模板.挂载Dom.渲染→更新→渲染.卸载等一系列过程,我们称这是Vue的生命周期.通俗说就是Vue实例从创建到销毁 ...
- Vue钩子函数
Vue的生命周期函数 beforeCreate:function(){ console.log('1-beforeCreate 初始化之后'); }, created:function(){ cons ...
- vue 钩子函数的使用
1.什么是自定义指令,有哪些钩子函数及自定义指令的使用场景 ①自定义指令是什么?以及自定义指令的使用场景 在Vue中,有很多内置指令,但是这些指令只能满足我们最基础的使用,当我们在实际项目中遇到了必须 ...
- generator函数与async/await
理解async函数就要先理解generator函数,因为async就是Generator函数的语法糖 Generator 函数 Generator 函数是 ES6 提供的一种异步编程解决方案,可以先理 ...
- vue 钩子函数的初接触
vue-router的路由钩子函数: 第一种:全局钩子函数. router.beforeEach((to, from, next) => { console.log('beforeEach') ...
- vue 钩子函数
beforeRouteEnter 方法名称: beforeRouteEnter 调用时机: 切换路由之前,调用该方法时,页面还没有切换 next调用时机: activated 之后 注意事项: thi ...
- vue钩子函数的妙用之“created()和activated()”
一.created() 在创建vue对象时,当html渲染之前就触发: 但是注意,全局vue.js不强制刷新或者重启时只创建一次, 也就是说,created()只会触发一次: 二.activated( ...
- vue 钩子函数中获取不到DOM节点
原文链接:https://jingyan.baidu.com/article/f96699bbfe9c9d894f3c1b4b.html 两种解决方案: 1:官方解决方案: 受到 HTML 本身的一些 ...
- VUE钩子函数created与mounted区别
created:在模板渲染成html前调用,即通常初始化某些属性值,然后再渲染成视图. mounted:在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的操作.
随机推荐
- SmartProg2 Universal, ISP capable programmer
http://www.elnec.com/products/universal-programmers/smartprog2/ 40 powerful TTL pindrivers provide H ...
- Android学习网站(1)
收集了一些比较好的Android学习网站,希望对大家有所帮助: 1.http://developer.android.com/ Android官方网站,可惜被屏蔽了,需要使用FQ软件 2.http:/ ...
- 光速 React
光速 React Vixlet 团队优化性能的经验教训 在过去一年多,我们 Vixlet 的 web 团队已经着手于一个激动人心的项目:将我们的整个 web 应用迁移到 React + Redux 架 ...
- 使用Enum.TryParse()实现枚举的安全转换
在项目中,有时候会用到领域枚举和DTO枚举的映射和转换.有一个现实的问题是:如果领域枚举项发生变化,而DTO枚举项没有及时更新,这样会造成映射不上的问题.那么,如何避免此类问题呢? 先看领域枚举和DT ...
- Selenium2+python自动化48-登录方法(参数化)
前言 登录这个场景在写用例的时候经常会有,我们可以把登录封装成一个方法,然后把账号和密码参数化,这样以后用的登录的时候,只需调用这个方法就行了 一.登录方法 1.把输入账号.输入密码.点击登录按钮三个 ...
- jsp中简易版本的图片上传程序
1.下载相应的组件的最新版本 Commons FileUpload 可以在http://jakarta.apache.org/commons/fileupload/下载 附加的Commons IO ...
- javax.imageio.IIOException: Can't create output stream! (生成验证码Servlet)
在 web.xml里面加入 下面的代码: <servlet> <servlet-name>validatecode</servlet-name> ...
- iptables配置实践
前言 在大企业中防火墙角色主要交给硬件来支持,效果自然没话说只是需要增加一点点成本,但对于大多数个人或者互联网公司来说选择系统自带的iptables或者第三方云防火墙似乎是更加合适的选择,通过一些合理 ...
- Eclipse点不出方法了
window→preferences→java→editor→Content Assist→Advanced 然后选中右上方的所有 右下方选中一个即可.
- 成为Java高手的25个学习目标
本文将告诉你学习Java需要达到的25个目标,希望能够对你的学习及找工作有所帮助.对比一下自己,你已经掌握了这25条中的多少 条了呢? 1.你需要精通面向对象分析与设计(OOA/OOD).涉及模式(G ...