html52.com
我爱小程序-开发者交流社区

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

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

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

以下是我做的尝试:

我看了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)
          }
        }
      })
    })
    
  },

网友回复

majnun:ئۇقامدۇ
C叔:
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()


评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付