以下是使用"await loop"和"Promise.all"处理异步操作的代码示例:
使用"await loop":
async function asyncLoop() {
const asyncTasks = [asyncTask1, asyncTask2, asyncTask3];
for (const task of asyncTasks) {
const result = await task();
console.log(result);
}
}
async function asyncTask1() {
return new Promise(resolve => {
setTimeout(() => {
resolve('Task 1');
}, 1000);
});
}
async function asyncTask2() {
return new Promise(resolve => {
setTimeout(() => {
resolve('Task 2');
}, 2000);
});
}
async function asyncTask3() {
return new Promise(resolve => {
setTimeout(() => {
resolve('Task 3');
}, 1500);
});
}
asyncLoop();
使用"Promise.all":
function promiseAll() {
const promises = [promise1, promise2, promise3];
Promise.all(promises)
.then(results => {
console.log(results);
})
.catch(error => {
console.error(error);
});
}
function promise1() {
return new Promise(resolve => {
setTimeout(() => {
resolve('Task 1');
}, 1000);
});
}
function promise2() {
return new Promise(resolve => {
setTimeout(() => {
resolve('Task 2');
}, 2000);
});
}
function promise3() {
return new Promise(resolve => {
setTimeout(() => {
resolve('Task 3');
}, 1500);
});
}
promiseAll();
在上述代码示例中,"await loop"会按顺序执行异步任务,并在每个循环迭代中等待前一个异步任务完成后再执行下一个异步任务。而"Promise.all"会并行执行所有异步任务,并在所有异步任务都完成后返回一个包含所有结果的新Promise对象。选择哪种方式取决于具体的需求和异步操作之间的依赖关系。