微信小程序真机调试数据调用出错

时间:2024-03-19 14:31:54

老规矩,问题描述:

在使用开发者工具下,程序按照理想中的执行逻辑进行,但是在进行真机测试时,会有数据不能传过来的现象。

具体见下图:

开发者工具端的AppData显示:

微信小程序真机调试数据调用出错

实机调试中AppData显示:

微信小程序真机调试数据调用出错

许多参数都是为空,造成结果就是许多参数不能正常显示

分析原因:

①that.setData不能正常的传值给数据层 。。。。。。。。源程序中是将that.setData写在API中造成的,如下:  db.collection("errorSwitch").where({******}).get({

        success:function(res){

                that.setData({

                              faultArrayImportant_Parameters:res.data[0].Fault.split(",")

                      })

         }

})

后来改变that.setData位置,发现that.setData中一旦调用res数据,就不能正确传值,各种尝试,都不能解决当前问题。

②执行顺序的问题,本人怀疑是当前处理没有进行,将这堆处理写到了上面一个处理函数中后,解决该问题。应该是在onloading中,同时并行写了多个处理,电脑端还可以从上往下依次执行,但是手机端就不会,标准的异步处理,才不会管你有没有做完,反正最快速度执行完,那么问题来了,就会出现当前变量值还没被调用,就已经用该变量进行一堆处理了,也就造成数值不能正常现实的现象了。。。。。(感觉超坑的,不好意思,我还曾对开发者工具产生过怀疑,虽然这个工具不咋滴)

总结:

一共花了两天处理这个问题,是真的难受,不知道错哪里,强烈建议新手了解下处理执行顺序,可以让你避免很多奇奇怪怪的坑。最后,冷静,分析。。。