函數調了兩次,第二次沒加參數
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參數 } }, }); }