解决分析bug能力提高篇之(小程序Picker滚动选择器数据错乱的问题 三)

233 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第3天,点击查看活动详情

课程口号

同为程序猿,我想要手环,希望大家多多 评论 点赞 收藏 🙏🙏🙏

课程背景

  • 程序员嘛,最开心的就是每天复制粘贴cv cv cv cv的,轻车熟路的整点业务。
  • 但是当偶尔遇到一些bug,那可就让人挠头了。
  • 甲方姥爷提出新的需求:小程序注册的用户需要绑定一个客服,但是为了防止每次都选择第一个客服,那么客服的列表就要每次都随机排序。
  • 前端小菜5分钟搞完上线了。好家伙,一会儿CTO就来把我们骂了一顿。选的张三,实际上是李四,选的李四,实际上是万五

正文开始

上一章节中我们根据现象找到了问题的原因,这里我们再对问题进行思考。

image.png

正如上面的流程图。正常情况下,我们的下拉框都是,先去接口拉取数据。等数据拉取完成以后,此时下拉框中会加载完成数据,并进行显示。

但是,因为我们的数据加载是写在点击事件中的,点击按钮的瞬间会同时执行两个操作。请求数据 渲染数据 因为接口是需要请求时间的,但是渲染数据却是很短暂的时间就会完成。数据还没来得及渲染列表早就已经显示出来了。这就导致了,我们是选择的上一次加载的数据列表。但是我们却是根据上一次的索引,在最新的一次列表中拿数据。并且每次请求接口的列表都是随机的,这就导致了我们前面遇到的问题。选的张三 拿到的是 李四

总结

受同步编程习惯的影响,我们习惯性的理解是程序能按照同步的方式执行完成。但是,小程序的数据都是异步执行的。这就会存在着这样一些的奇怪的问题出现。当遇到问题时候,还是要第一时间考虑是不是因为异步加载这个原因导致的 好了,这个小bug的分析就到这里。感谢观看。