在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
老规矩,问题描述:在使用开发者工具下,程序按照理想中的执行逻辑进行,但是在进行真机测试时,会有数据不能传过来的现象。 具体见下图: 开发者工具端的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中,同时并行写了多个处理,电脑端还可以从上往下依次执行,但是手机端就不会,标准的异步处理,才不会管你有没有做完,反正最快速度执行完,那么问题来了,就会出现当前变量值还没被调用,就已经用该变量进行一堆处理了,也就造成数值不能正常现实的现象了。。。。。(感觉超坑的,不好意思,我还曾对开发者工具产生过怀疑,虽然这个工具不咋滴) 总结:一共花了两天处理这个问题,是真的难受,不知道错哪里,强烈建议新手了解下处理执行顺序,可以让你避免很多奇奇怪怪的坑。最后,冷静,分析。。。 |
请发表评论