1.创建异步任务数组,元素为返回Promise对象的方法
const tasks = files.map((file, index) => {
return () => new Promise((resolve, reject) => {
setTimeout() => {
resolve({});
})
})
})
2.串行执行异步任务
async function runAsyncTasks(tasks) {
const results = [];
for (const task of tasks) {
const result = await task();
results.push(result);
}
return results;
}
tip:for of是ES6迭代器语法糖
3.执行异步任务
runAsyncTasks(tasks).then(results => {
callback(results);
});