收藏
回答

为什么array数据读取时【偶尔】返回length出错【但数据内容都存在】?

背景介绍:使用array从云开发自带的数据库中读取数据(共26条)。

正常情况下的输出(length)应该如下图第194行所示:

[Array(26), Array(26), Array(26)]为正常运行情况。也是在大部分时候编译后出现的情况。

然而少数时候编译时,会出现如下图所示的异常情况:

如图所示,输出的是[Array(6), Array(6), Array(6)],输出detail[0].length也是6(为后续使用.length带来bug),而正常输出应该是上面的26。虽然长度上显示的是6,但是下拉后发现其实还是包含了26条的全部数据。(p.s. 这个问题只在少数编译时发生)

p.s. 关于显示"6"的推测:因为数据库读取只能分批进行,所以设置的每次读取量20条。推测可能产生上述问题的原因是只有最后一次读入的数据长度(26-20=6)被显示了出来。(p.s. 如果设置每次读10条,同样也是会出现6条的情况,而非16条。说明是只有最后一次的数据被记入了长度,而非只有第一次读的数据没被记入长度)。

新手开发🙏一开始测试数据比较少没有发现这个问题,现在突然发现这个不稳定的bug 还请大神们指点一二 谢谢!!



回答关注问题邀请回答
收藏

1 个回答

  • 工号 9527
    工号 9527
    2021-04-15

    在 console.log 执行的时候,chrome 会对 log 的对象求一次值,打印出来是 Object

    但当你展开控制台中的 Object 的时候,chrome 又会对它求一次值。

    如果这两次中间,对 object 修改过,前后打印的东西就不一样了

    因为对象引用的实体的值改变了。


    2021-04-15
    有用
    回复
登录 后发表内容
问题标签