欢迎光临,了解微信小程序开发,就上易用通!

小程序开发填坑《十九》wx.uploadFile在安卓机the same task is working

发布:2018-01-25 10:53浏览: 来源:网络 作者:tianshu

wx.uploadFile在安卓机the same task is working

微信小程序上传图片的时候,如果是多图片上传,一般都是直接用一个循环进行wx.uploadFile
这个在电脑上面测试与苹果手机上面都不会有什么问题
但当用安卓测试的时候,你会发现小程序会提示一个the same task is working
wx.uploadFile不能并行,因为wx.uploadFile是一个异步函数,所以循环的时候在安卓手机上会出现并行
 
解决方法:
 
做一个上传完的标识,然后
用递归算法进行上传
在上传成功的回调函数里面,直接递归,标识满足直接跳出,完成所有图片上传
贴上个代码段
 
  1. //上传标识
  2.  
  3. var i=0
  4.  
  5. //imglist为要上传图片的路径数组
  6.  
  7. uploadImg: function () {   
  8.  
  9.     var that = this
  10.  
  11.     if (i == imglist.length) {
  12.  
  13.     //清空还原
  14.  
  15.       news = ""
  16.  
  17.       city = ""
  18.  
  19.         i=0
  20.  
  21.       wait = true
  22.  
  23.       imglist = []
  24.  
  25.       serverImg = []
  26.  
  27.       retrunList = []
  28.  
  29.       that.setData({
  30.  
  31.         loding: false,
  32.  
  33.         src: [],
  34.  
  35.         disabled: false
  36.  
  37.       })
  38.  
  39.       return;
  40.  
  41.     }
  42.  
  43.       var imgcount = imglist.length;
  44.  
  45.       wx.uploadFile({
  46.  
  47.         url: config.serverUrl('index.php/user/uploadtu'),
  48.  
  49.         filePath: imglist,
  50.  
  51.         name: 'file',
  52.  
  53.         formData: { 'user': 'test' },
  54.  
  55.         success: function (res) {
  56.  
  57.           serverImg.push(res.data)
  58.  
  59.           if (imgcount == serverImg.length) {
  60.  
  61.             var serverImgStr = serverImg.join("|")
  62.  
  63.             wx.request({
  64.  
  65.               url: config.serverUrl('index.php/user/baobeiadd'),
  66.  
  67.               method: 'POST',
  68.  
  69.               data: Util.json2Form({
  70.  
  71.                 imglist: serverImgStr,
  72.  
  73.                 userId: userId,
  74.  
  75.                 news: news,
  76.  
  77.                 city: city,
  78.  
  79.                 latitude: latitude,
  80.  
  81.                 longitude: longitude
  82.  
  83.               }),
  84.  
  85.               header: {
  86.  
  87.                 'content-type': 'application/x-www-form-urlencoded'
  88.  
  89.               },
  90.  
  91.               success: function (res2) {
  92.  
  93.                 if (res2.data.state == "ok") {
  94.  
  95.  
  96.  
  97.                   that.setData({
  98.  
  99.                     loding: false,
  100.  
  101.                     butTxt: "发布",
  102.  
  103.                     disabled: false
  104.  
  105.                   })
  106.  
  107.                    
  108.  
  109.                   Util.mesUrl("发布成功!", "../index/index")
  110.  
  111.                 }
  112.  
  113.                 else {
  114.  
  115.                   Util.mes("描述至少10人字以上哦,还有图片也要选哦!")
  116.  
  117.                 }
  118.  
  119.               }
  120.  
  121.             })
  122.  
  123.           }else
  124.  
  125.           {
  126.  
  127.           //这里直接递归
  128.  
  129.           i++;
  130.  
  131.           that.uploadImg();
  132.  
  133.           }
  134.  
  135.         },
  136.  
  137.         fail: function (e) {
  138.  
  139.           console.log(e)
  140.  
  141.           Util.mes("图片上传失败,请重新发布!" + i)
  142.  
  143.         }
  144.  
  145.       })
  146.  
  147.  
  148.  
  149.   },





免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。