vue中js方法加载遇到的坑

项目场景:

刚用vue完成了几个小项目,在其中一个项目处理ajax请求传参的时候遇到一个问题:在初始化(created)的时候我各种获取不同数据的方法是按照顺序排列进行请求的,其中有部分请求的传参需要从另外的请求中获取,于是我选择将获取传参的方法排在前面优先执行,以便后面的请求能准确得到参数。

问题描述:

问题来了:不论怎么在(created)优先执行获取传参的方法,我设置的全局变量就是获取不到整个方法返回的结果,但是这个获取传参的方法是被执行了,在该方法执行成功后能在success里面得到准确的结果,但这个结果就是没有传递给我设置的全局变量。

原因分析:

个人认为:vue里面的各种钩子函数都有对应的生命周期,在初始化(created)的时候里面放了多个方法的时候,差不多是同时执行的里面的方法,并且这里用的是异步请求,而异步请求的一个特点就是在这个请求还没完成的时候就可以进行下一个请求,而所有的请求是需要时间来响应的,特别是在某些情况比如网络延迟、数据量过大或者其他情况下时间会需要的更多,所以,导致我设置的全局变量是没法接收相关数据的,只能读取设置的默认值null。

解决方案:

将两个方法处理成同步请求,在我执行完获取传参的方法后再执行另外一个方法。虽然这种方法在某些情况下看着容易发生类似线路堵塞的情况,并且在整个页面代码上看着有些冗长,但这种方式能避免读错数据,也能避免很多死锁的情况。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值