函数调了两次,第二次没加参数
var remoteUrls = [] function uploadimg(data, finish) { var that = this, i = data.i ? data.i : 0,//当前上传的哪张图片 success = data.success ? data.success : 0,//上传成功的个数 fail = data.fail ? data.fail : 0;//上传失败的个数 var cookie = this.getCookie() if(i == 0){ remoteUrls=[] } wx.uploadFile({ url: data.url, filePath: data.path[i], name: 'contentimg',//这里根据自己的实际情况改 formData: { id: JSON.stringify(data.artId) },//这里是上传图片时一起上传的数据 header: { cookie: cookie }, success: (resp) => { success++;//图片上传成功,图片上传成功的变量+1 console.log(resp) console.log(i); //这里可能有BUG,失败也会执行这里,所以这里应该是后台返回过来的状态码为成功时,这里的success才+1 var data = resp.data; var dataObj = JSON.parse(data) var url = dataObj.data.url; remoteUrls.push(url) console.log("push:zz:"+remoteUrls, typeof remoteUrls) }, fail: (res) => { fail++;//图片上传失败,图片上传失败的变量+1 console.log('fail:' + i + "fail:" + fail); }, complete: function(){ console.log(i); i++;//这个图片执行完上传后,开始上传下一张 if (i == data.path.length) { //当图片传完时,停止调用 console.log('执行完毕'); console.log('成功:' + success + " 失败:" + fail); var jsonArr = JSON.stringify(remoteUrls) console.log("参数:" + jsonArr, typeof jsonArr) console.log("要传的参数:"+remoteUrls) console.log(remoteUrls,typeof remoteUrls); finish(remoteUrls); } else {//若图片还没有传完,则继续调用函数 console.log(i); data.i = i; data.success = success; data.fail = fail; that.uploadimg(data,finish);// 漏了Finish参数 } }, }); }