可以使用以下代码创建一个返回Promise的函数,该函数将计算给定数组的和,并在3秒后打印出来:
function calculateSum(array) {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (Array.isArray(array)) {
const sum = array.reduce((acc, curr) => acc + curr, 0);
resolve(sum);
} else {
reject(new Error('Invalid input. Expected an array.'));
}
}, 3000);
});
}
const array = [4, 2, 7, 1];
calculateSum(array)
.then(sum => {
console.log('Sum:', sum);
})
.catch(error => {
console.error('Error:', error.message);
});
这段代码定义了一个名为calculateSum
的函数,它接受一个数组作为参数,并返回一个Promise对象。在Promise的执行函数中,我们使用setTimeout
函数模拟了一个3秒的延迟。在延迟结束后,我们首先检查输入是否为数组,然后使用reduce
方法计算数组的和。如果输入无效,则会拒绝Promise并返回一个错误对象。
在主程序中,我们创建了一个名为array
的数组,并将其作为参数传递给calculateSum
函数。然后,我们使用.then
方法来处理Promise的解决结果,打印出计算得到的和。如果Promise被拒绝,则使用.catch
方法来处理错误,并打印出错误消息。
这个函数的应用场景可以是在需要异步计算数组和的情况下使用。例如,在前端开发中,当需要从后端获取一个数组并计算其总和时,可以使用这个函数来处理异步操作。在云计算领域中,这个函数可以用于处理大规模数据的计算任务,例如在分布式系统中对多个节点的计算结果进行汇总。
领取专属 10元无门槛券
手把手带您无忧上云