微信小プログラムwx.uploadFileはアンドロイドの携帯電話の上でthe same task is working問題を解決します

2561 ワード

微信小プログラムwx.uploadFileはアンドロイドの携帯電話の上でthe same task is working問題を解決します
微信ウィジェットが画像をアップロードする場合、マルチ画像アップロードであれば、直接1サイクルでwxを行うのが一般的です.uploadFile
これはパソコンでテストしてもアップルの携帯電話でも問題はありません.
しかし、アンドロイドでテストすると、小さなプログラムがthe same task is workingを提示することがわかります.
wx.uploadFileはwxのため並列できません.uploadFileは非同期関数なので、ループするとアンドロイドの携帯電話で並列に表示されます
解決策
アップロードされたIDを作成し、
再帰アルゴリズムによるアップロード
アップロードに成功したコールバック関数の中で、直接再帰して、標識は直接飛び出して、すべての画像のアップロードを完成します
コードセグメントを貼り付ける

// 
var i=0
//imglist 
uploadImg: function () {  
  var that = this
  if (i == imglist.length) {
  // 
   news = ""
   city = ""
    i=0
   wait = true
   imglist = []
   serverImg = []
   retrunList = []
   that.setData({
    loding: false,
    src: [],
    disabled: false
   })
   return;
  }
   var imgcount = imglist.length;
   wx.uploadFile({
    url: config.serverUrl('index.php/user/uploadtu'),
    filePath: imglist[i],
    name: 'file',
    formData: { 'user': 'test' },
    success: function (res) {
     serverImg.push(res.data)
     if (imgcount == serverImg.length) {
      var serverImgStr = serverImg.join("|")
      wx.request({
       url: config.serverUrl('index.php/user/baobeiadd'),
       method: 'POST',
       data: Util.json2Form({
        imglist: serverImgStr,
        userId: userId,
        news: news,
        city: city,
        latitude: latitude,
        longitude: longitude
       }),
       header: {
        'content-type': 'application/x-www-form-urlencoded'
       },
       success: function (res2) {
        if (res2.data.state == "ok") {
 
         that.setData({
          loding: false,
          butTxt: " ",
          disabled: false
         })
          
         Util.mesUrl(" !", "../index/index")
        }
        else {
         Util.mes(" 10 , !")
        }
       }
      })
     }else
     {
     // 
     i++;
     that.uploadImg();
     }
    },
    fail: function (e) {
     console.log(e)
     Util.mes(" , !" + i)
    }
   })
 
 },


読書に感謝して、みんなを助けることができることを望んで、みんなの当駅に対する支持に感謝します!