我好饿啊啊啊啊啊啊啊啊 2021-03-23 00:25 采纳率: 100%
浏览 534
已采纳

微信小程序——在js中使用this.data.xxxx获取数据有延迟

使用云函数获取数据库信息并写入foodList中,在onLoad生命周期中使用this.data获取数值是出现了问题,如下图

明明this.data中有foodList的数据,但是this.data.foodList获取不到

之后加了点延迟又获取到了数据,这是为什么呢?为什么获取数据会有延迟呢,明明同一时间this.data中有数据,但是就是获取不到,有没有大佬给小白解疑啊QAQ

  • 写回答

2条回答 默认 最新

  • 天际的海浪 2021-03-23 03:41
    关注


    foodList中的数据应该是通过ajax异步方式加载的,onLoad生命周期不会等待异步加载这一过程。
    onLoad生命周期会在ajax异步加载数据完成之前执行,这个时间foodList中还没有数据。

    为什么明明this.data中有foodList的数据呢?
    那是因为console.log()输出对象或数组时是在控制台显示一个对象或数组的引用。

    在用console.log()输出数组或对象时,对象(数组)的属性是折叠不显示的。
    如果你在console.log()输出之后改变了对象(数组)的属性,当你点击三角展开属性时,会重新读取对象(数组)当前的属性,也就是显示出来的是你点击三角展开时的属性,而不是执行console.log()时的属性。

    就是说你在console.log()输出this.data之后,ajax异步加载数据才完成对foodList添加数据,这之后你点击三角展开this.data的属性,会重新读取foodList当前的属性。
     

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 我这模型写的不对吗?为什么lingo解出来的下面影子价格这一溜少一个变量
  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波