js
//循环体拿进来,当循环结束之后才能做其他事 function getUploadTime(func) { var list = getUploadContentList(); for (var i = 0; i < list.length; i++) { (function(content) { var startUploadTime = new Date().valueOf(); var xhr = $.ajax({ type: "POST", url: url", data: content, dataType: "text", success: function () { var endUploadTime = new Date().valueOf(); var timeUploadInterval = (endUploadTime - startUploadTime) / 1000;//s var speed = (getTotalBytes(content) / 1024 / 1024 / timeUploadInterval); if (typeof speed === "number") { //触发回调 func(speed); } else { func(0) } }, error: function () { func(0); } }) }(list[i])); } console.log("dddd") } function afterGetUploadTime(speed){ if (speed !== 0){ uploadSpeedList.push(speed); } var total = 0; for (var i=0;i<uploadSpeedList.length;i++){ total += uploadSpeedList[i]; } console.log(speed+ " "+total + " "+ (total/uploadSpeedList.length).toFixed(2)+ " " + uploadSpeedList.length); $(".uploadSpeed").val((total/uploadSpeedList.length).toFixed(2) + "Mb/s"); }