pool.findIndex(t=>t===task)pool.splice(index)}).catch(()=>{failList.push(item)}).finally(()=>{finish++//如果有失败的重新上传if(finish===list.length){uploadFileChunks(failList)}})pool.push(task)if(pool.length===max){awaitPromise.race(pool)}}}uploadFileChunks(fileChunks)}服务端接口实际constexpress=require('express')constmultiparty=require('multiparty')constfs=require('fs')constpath=require('path')const{Buffer}=require('buffer')//文件路径constSTATIC_FILES=path.join(__dirname,'./static/files')//上传文件的临时路径constSTATIC_TEMPORARY=path.join(__dirname,'./static/temporary')constserver=express()//静态文件hostingserver.use(express.static(path.join(__dirname,'./dist')))//uplo接口
