为了账号安全,请及时绑定邮箱和手机立即绑定

async和await在生命周期中为什么没起作用?

async和await在生命周期中为什么没起作用?

青春有我 2019-05-07 08:42:22
查看完整描述

2 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

mounted本来就是在created结束之后执行的。
async函数不会中断JavaScript的执行,而是将await的函数放入任务队列中。
mounted中console.log(2)是同步的,会先被执行(具体需要了解任务队列和Vue生命周期)
如果你要确保console.log(2)要在之后执行,建议你在mounted或created中用this.test().then(()=>console.log(2))
                            
查看完整回答
反对 回复 2019-05-07
?
万千封印

TA贡献1891条经验 获得超3个赞

按照我的理解,asyn函数的外部调用asyn函数的时候,不会被其内部的await阻塞,也就是说created方法不会因为test内部的await而等待,created早就执行完了,test内部还在await没有返回,created应该用then去接收test的返回值undefined。
你应该是想用await来阻塞javascript执行,其实这是行不通的,await其实不会阻塞任何(非asyn)方法执行,本质上await也不能阻塞asyn函数的执行。created不是asyn函数,不可能等待或者阻塞。
                            
查看完整回答
反对 回复 2019-05-07
  • 2 回答
  • 0 关注
  • 1625 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信