收藏
回答

循环下载图片到临时文件只显示一个,你们有遇到过吗?

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug wx.downloadFile 工具 6.7.3 2.4.0
onLoad: function (options) {
  var lent = [
    "https://wx.qlogo.cn/mmhead/XtxAEvJhLWZbe5xLnXFw1EjI54NkntBricIbfBkvNiajE/64",
    "https://wx.qlogo.cn/mmhead/XtxAEvJhLWZbe5xLnXFw1EjI54NkntBricIbfBkvNiajE/64",
    "https://wx.qlogo.cn/mmhead/XtxAEvJhLWZbe5xLnXFw1EjI54NkntBricIbfBkvNiajE/64"]
 
  var temp = []
 
  for (var i = 0; i < lent.length; i++) {
    wx.downloadFile({
      url: lent[i],
      success(res) {
        if (res.statusCode === 200) {
          temp[i] = res.tempFilePath
        }
 
      }
    })
  }
  console.log(temp)
}


最后一次编辑于  2018-11-28
回答关注问题邀请回答
收藏

3 个回答

  • 微盟
    微盟
    2018-11-29

    典型的闭包问题,可以通过立即函数或是forEach写箭头函数来解决。

    2018-11-29
    赞同
    回复
  • 卢霄霄
    卢霄霄
    2018-11-28

    for (var i = 0; i < lent.length; i++) {

        let index = i

        wx.downloadFile({

          url: lent[index ],

          success(res) {

            if (res.statusCode === 200) {

              temp[index ] = res.tempFilePath

            }

     

          }

        })

      }


    2018-11-28
    赞同
    回复 2
    • 無
      2018-11-28

      显示出来,为啥

      console.log(temp[0])

      输出 undefined


      2018-11-28
      回复
    • 卢霄霄
      卢霄霄
      2018-11-28回复

      异步的问题,你要写到temp[index] = res.tempFilePath 这一行后面console.log

      2018-11-28
      回复
  • 無
    2018-11-28

    1

    2018-11-28
    赞同
    回复