如果定义一个函数,该函数内部遍历某个数组时调用了很多次异步函数,并且这些异步函数都有返回值,如何获取这些返回值并且将这些返回值返回给调用这个函数的函数
时间: 2023-02-06 07:06:51 浏览: 178
可以使用 Promise 来解决这个问题。Promise 是 JavaScript 中的一种异步编程解决方案,可以帮助你在异步函数内部处理返回值,并且在调用的函数中使用这些返回值。
举个例子,假设你有一个数组 `arr`,并且你希望对数组中的每个元素调用一个异步函数 `asyncFunc`,并将调用结果保存在一个新的数组 `results` 中:
```
const results = [];
for (const element of arr) {
const result = await asyncFunc(element);
results.push(result);
}
```
但是,这段代码并不能直接在函数内部使用,因为它使用了 `await` 关键字,它必须在一个 `async` 函数中使用。所以,我们可以将这段代码封装在一个 `async` 函数中,然后在外部调用这个函数:
```
async function getResults(arr) {
const results = [];
for (const element of arr) {
const result = await asyncFunc(element);
results.push(result);
}
return results;
}
// 调用函数
const results = await getResults(arr);
```
这样,你就可以在函数内部调用多个异步函数,并且在调用的函数中使用这些异步函数的返回值了。
当然,如果你想在调用函数时处理错误,你可以使用 `try...catch` 语句:
```
try {
const results = await getResults(arr);
// 处理结果
} catch (error) {
// 处理错误
}
```
阅读全文