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

微信小程序——在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条)

报告相同问题?

悬赏问题

  • ¥500 高有偿提问!求优化设计微信小程序
  • ¥15 matlab在安装时报错 无法找到入口 无法定位程序输入点
  • ¥15 收益高的广告联盟有哪些
  • ¥15 Android Studio webview 的使用问题, 播放器横屏全屏
  • ¥15 删掉jdk后重新下载,Java web所需要的eclipse无法使用
  • ¥15 uniapp正式环境中通过webapi将本地数据推送到设备出现的跨域问题
  • ¥15 xui建立节点,显示错误
  • ¥15 关于#单片机#的问题:开始、复位、十进制的功能可以实现,但是切换八进制的功能无法实现(按下按键也没有效果),把初始状态调成八进制,也是八进制可以实现但是切换到十进制不行(相关搜索:汇编语言|计数器)
  • ¥15 VINS-Mono或Fusion中feature_manager中estimated_depth是特征的深度还是逆深度?
  • ¥15 谷歌浏览器如何备份抖音网页数据