MST

星途 面试题库

面试题:JavaScript中如何使用Promise实现函数调用的并发处理

假设你有一个数组,数组中的每个元素都是一个返回Promise的函数。请编写代码,并发调用这些函数,并在所有函数都完成后打印出每个函数的返回结果。
44.8万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
function executePromises(promiseFunctions) {
    return Promise.all(promiseFunctions.map(func => func()))
      .then(results => {
            console.log(results);
            return results;
        })
      .catch(error => {
            console.error('An error occurred:', error);
            throw error;
        });
}

// 示例使用
const promiseFunctions = [
    () => new Promise(resolve => setTimeout(() => resolve('Result 1'), 1000)),
    () => new Promise(resolve => setTimeout(() => resolve('Result 2'), 500)),
    () => new Promise(resolve => setTimeout(() => resolve('Result 3'), 1500))
];

executePromises(promiseFunctions);

上述代码定义了一个executePromises函数,它接受一个包含返回Promise的函数的数组。通过Promise.all方法并发执行这些函数,并在所有Promise都解决后打印出结果。如果任何Promise被拒绝,catch块会捕获并处理错误。