js 中 一个函数要根据三个请求返回的结果都返回之后,才计算 怎么写
时间: 2024-04-17 13:27:25 浏览: 98
JS中实现函数return多个返回值的实例
在 JavaScript 中,你可以使用 Promise 和 async/await 来处理多个异步请求,并在所有请求完成后执行计算。下面是一个示例代码:
```javascript
// 异步请求函数示例
function fetchData(url) {
return new Promise((resolve, reject) => {
// 模拟异步请求
setTimeout(() => {
// 假设请求成功,返回结果
resolve(`Data from ${url}`);
// 假设请求失败,返回错误
// reject(new Error(`Failed to fetch data from ${url}`));
}, Math.random() * 1000); // 随机延迟时间
});
}
// 主要逻辑函数
async function processRequests() {
try {
// 发起三个异步请求
const request1 = fetchData('https://api.example.com/endpoint1');
const request2 = fetchData('https://api.example.com/endpoint2');
const request3 = fetchData('https://api.example.com/endpoint3');
// 等待所有请求完成
const results = await Promise.all([request1, request2, request3]);
// 执行计算,使用 results 数组中的结果
const calculationResult = results.join(', ');
return calculationResult;
} catch (error) {
console.error('Error:', error);
throw error;
}
}
// 调用主要逻辑函数
processRequests()
.then((result) => {
console.log('Calculation result:', result);
})
.catch((error) => {
console.error('Error:', error);
});
```
在上述示例中,`fetchData` 函数模拟了一个异步请求,并返回一个 Promise 对象。`processRequests` 函数使用 async/await 来处理三个异步请求,并等待所有请求完成。然后,将请求结果存储在 `results` 数组中,并执行计算得出 `calculationResult`。最后,通过 Promise 的 `then` 方法获取计算结果。如果在任何一个请求中出现错误,将通过 Promise 的 `catch` 方法捕获并处理错误。
请注意,示例中的异步请求函数 `fetchData` 是简化的示例,你需要根据实际情况编写你的异步请求逻辑。
阅读全文