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


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


    "诡异"的问题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发送请求并等待相应的时间内锁住浏览器,就可以保证封装操作在打印对象之前执行了;

    获得经验:

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


  • 相关阅读:
    决策树理解
    堆排序
    glove理解
    PHP图片水印类
    宝塔nginx安装rtmp模块实现推拉流
    nginx安装配置
    结构体,位域,共用体
    指针
    升级mac Catalina版本后无操作权限
    脚本连接linux服务器
  • 原文地址:https://www.cnblogs.com/Joey44/p/10109016.html
Copyright © 2020-2023  润新知