例如reduce陆续执行性质,结合promise实现文件的陆续上传
- 创建上传文件函数
// 顺序执行的函数
const singleUploadFile=(file)=>{
return function(){
return new Promise((resolve,reject)=>{
return setTimeout(()=>{
console.log(file,'setimeout')
resolve()
},1000)
})
}
}
- 生成一个函数数组
let arr=[singleUploadFile(1),singleUploadFile(2),singleUploadFile(3)]
- 顺序执行,并且监听最后执行成功的结果
const allTask=arr.reduce((prev, next)=>prev.then(()=>next()),Promise.resolve())
allTask.then(res=>{
console.log('全部任务执行完毕')
})