日常开发时遇到的一些坑(一)

开发时总会遇到一些自己一时解决不了的问题,大大降低了工作效率,博主在这列出一些日常踩到过的"坑",希望能帮到网友们.

 


 

"诡异"的问题1:Vue在发送ajax请求之后返回的数据有的为'undefined',具体情况看下图:

为什么ajax请求获取之后,我封装进Vue对象里,再打印这个对象,怎么可能获取一个undefined的cardNo呢?难道程序不是顺序执行的吗?

 

然而罪魁祸首在这里:

程序当然是顺序执行的,发出ajax请求之后程序就会继续执行,至于何时会进行回调,不知道,我们并不能决定回调函数的执行时间,但总有方法可以达到我们的业务目的,js的工作机制是当线程空闲的情况下才会执行异步代码的回调函数,具体callback的知识可以参考这篇博文:https://blog.csdn.net/jnshu_it/article/details/80030269,以及:https://blog.csdn.net/u014787301/article/details/51984998

出现上图的情况,说明封装Vue对象的操作还未完成,页面主线程已经执行打印Vue对象的操作了,然而此时需要的数据还在响应里,Vue对象的cardNo属性还没赋值,所以是'undefined'

 

 

解决办法:

将ajax请求的async属性设置为true,另ajax发送请求并等待相应的时间内锁住浏览器,就可以保证封装操作在打印对象之前执行了;

 

获得经验:

以后转储工作尽量放在回调函数之外,可以异步的操作放回调函数中就好。

 


 

转载于:https://www.cnblogs.com/Joey44/p/10109016.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值