微信小程序开发的过程中遇到的坑—for循环与success回调函数

在开发微信小程序时,作者遇到for循环与wx.downloadFile的success回调函数同步问题,导致图片下载错误。问题在于for循环快速执行完毕,而wx.downloadFile的异步特性使得success回调时i的值已改变。解决方案包括设置全局变量或调整执行流程,但各有优缺点。
摘要由CSDN通过智能技术生成

作为一名准研究生,已经提前在学校干活了…导师最近让我做一个垃圾分类+图像识别的小程序,由于之前从未接触过小程序与后端的开发,所以写一些博客来记录一下开发过程中遇到的坑

问题描述

作为一个垃圾分类的小程序,我希望实现历史记录回顾的功能,因此设计了一个页面用来展示历史记录,而历史记录需要小尺寸图片,所以图片需要从远程服务器下载。我的想法是将历史记录一条一条的作为一个整体数组存在小程序的缓存中,然后在历史记录页面Show的时候,检测对应的记录的图片是否已经缓存到本地,如果没有缓存到本地,则去远程服务器下载,并将其缓存到本地,将缓存到的地址存到记录对象中。

代码展示

 for (var i = 0; i < historys.length; i++) {
      console.log(i, historys[i].filePath === "")
      if (historys[i].filePath === "") {
       
        wx.downloadFile({
          url: 'http://www.littlezhu.top/download' + '?imagePath=' + '57fa7b4490b3a32c3b11f1afcaf5bbb1.jpg',
          success: res => {
            if (res.statusCode === 200) {
              console.log('图片下载成功' + res.tempFilePath)
              //使用小
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值