按顺序等待或等待一个Promise.all 是指按照给定的顺序执行一系列的异步操作,并在所有操作完成后返回结果。
以下是一个解决方法的示例代码:
// 异步操作函数1
function asyncFunction1() {
return new Promise((resolve, reject) => {
setTimeout(() => resolve('第一个操作完成'), 1000);
});
}
// 异步操作函数2
function asyncFunction2() {
return new Promise((resolve, reject) => {
setTimeout(() => resolve('第二个操作完成'), 2000);
});
}
// 异步操作函数3
function asyncFunction3() {
return new Promise((resolve, reject) => {
setTimeout(() => resolve('第三个操作完成'), 3000);
});
}
// 按顺序等待异步操作并返回结果
async function sequentialAsyncOperations() {
const result1 = await asyncFunction1();
console.log(result1);
const result2 = await asyncFunction2();
console.log(result2);
const result3 = await asyncFunction3();
console.log(result3);
return '所有操作完成';
}
// 使用Promise.all等待多个异步操作并返回结果
async function parallelAsyncOperations() {
const results = await Promise.all([
asyncFunction1(),
asyncFunction2(),
asyncFunction3()
]);
console.log(results);
return '所有操作完成';
}
// 按顺序等待异步操作
sequentialAsyncOperations()
.then(result => {
console.log(result);
})
.catch(error => {
console.error(error);
});
// 等待Promise.all操作
parallelAsyncOperations()
.then(result => {
console.log(result);
})
.catch(error => {
console.error(error);
});
上述代码中,sequentialAsyncOperations
函数会按照给定的顺序依次执行异步操作,并在每个操作完成后打印结果。
parallelAsyncOperations
函数使用Promise.all
来并行执行多个异步操作,并在所有操作完成后打印结果。
你可以分别调用这两个函数来演示不同的等待方式。
上一篇:按顺序的列值