背景介绍:使用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 还请大神们指点一二 谢谢!!
在 console.log 执行的时候,chrome 会对 log 的对象求一次值,打印出来是 Object
但当你展开控制台中的 Object 的时候,chrome 又会对它求一次值。
如果这两次中间,对 object 修改过,前后打印的东西就不一样了
因为对象引用的实体的值改变了。