详细分析Js中的Promise.all基本知识(附Demo)
// 导入必要的库
const util = require('util');
// 定义一个模拟异步操作的函数
function asyncOperation(value, delay) {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (typeof value === 'number') {
resolve(value * 2);
} else {
reject(new Error('Value is not a number'));
}
}, delay);
});
}
// 使用Promise.all并发执行多个异步操作
function testPromiseAll() {
const promises = [
asyncOperation(200, 100),
asyncOperation('Hello', 150),
asyncOperation(500, 200)
];
// 使用Promise.all等待所有promises完成
Promise.all(promises).then(values => {
console.log('所有promise都已成功解决:', values);
}).catch(error => {
console.error('至少一个promise失败:', error);
});
}
// 调用函数执行测试
testPromiseAll();
这段代码首先定义了一个模拟异步操作的函数asyncOperation
,它接收一个值和延迟时间,并在指定的延迟后返回一个被乘以2的新值的promise。然后,testPromiseAll
函数创建了一个promise数组,并使用Promise.all
来并发执行这些异步操作。当所有promise都成功解决时,它会打印出解决的值;如果至少有一个promise失败,它会捕获错误并打印出来。
评论已关闭