收藏
回答

小程序如何实现串行同步下载多个网络文件?

我的需求是 先下载完一数组的图片,然后再处理其它业务。

那么,小程序如何实现同步下载一个网络文件?

以下是我做的尝试:

我看了wx.downloadFile 的文档,我看文档说不支持promise调用。但是满足不了我的需求,它是异步下载的。

我用 async await 试了一下 。没有结果。

这是调用

that.getCacheOfOneImage(recordsObj[i].image_url).then(function(res){
            console.log(res);
          })


 getCacheOfOneImage:async function(url){
   return await new Promise(function(resolve,reject){
      wx.downloadFile({
        url: url, //仅为示例,并非真实的资源
        success (res) {
          // 只要服务器有响应数据,就会把响应内容写入文件并进入 success 回调,业务需要自行判断是否下载到了想要的内容
          if (res.statusCode === 200) {
            console.log("cache file ",res.tempFilePath)
          }
        }
      })
    })
    
  },
最后一次编辑于  09-15
回答关注问题邀请回答
收藏

3 个回答

  • majnun
    majnun
    09-15
    ئۇقامدۇ
    09-15
    有用
    回复
  • C叔
    C叔
    09-15
    async getCacheOfOneImage(){
       return await new Promise(function(resolve,reject){
          wx.downloadFile({
            url: url, //仅为示例,并非真实的资源
            success (res) {
              // 只要服务器有响应数据,就会把响应内容写入文件并进入 success 回调,业务需要自行判断是否下载到了想要的内容
              if (res.statusCode === 200) {
                resolve(res.tempFilePath)
                console.log("cache file ",res.tempFilePath)
                return
              }
                reject() //失败
            },
          fail:reject
          })
        })
        
      },
    await getCacheOfOneImage()
    


    09-15
    有用
    回复 1
    • Derrick舰长
      Derrick舰长
      09-15
      尝试了一下,还是异步执行的。  是小程序.js文件要事先引入其它文件么?
      09-15
      回复
  • 敬轩
    敬轩
    09-14

    监听,完成后执行下一步

    https://developers.weixin.qq.com/miniprogram/dev/api/network/download/DownloadTask.onProgressUpdate.html

    09-14
    有用
    回复
登录 后发表内容