javascript - 尝试使用 promise.all 和 forEach 在 javascript 中获取多个 api
问题描述
async function someFunction() {
try {
await Promise.all([
trendingsSlide.forEach((val) => {
axios(
`https://api.themoviedb.org/3/movie/${val}?api_key=${api}`
);
}),
]).then((val) => {
console.log(val);
});
} catch (err) {
console.log(err);
}
}
someFunction();
为什么响应未定义,我尝试了很多来解决问题但它不起作用
解决方案
因为forEach
返回未定义。您想要map
,并且还从回调中返回承诺axios
(您可以使用简洁的箭头函数而不是带有{}
主体的函数隐式地执行此操作):
async function someFunction() {
try {
await Promise.all(
trendingsSlide.map((val) =>
axios(
`https://api.themoviedb.org/3/movie/${val}?api_key=${api}`
)
)
).then((val) => {
console.log(val);
});
} catch (err) {
console.log(err);
}
}
someFunction();
async
您可以通过使用以下函数使其更具可读性(无论如何对我来说)map
:
async function someFunction() {
try {
await Promise.all([
trendingsSlide.map(async (val) => {
const val = await axios(
`https://api.themoviedb.org/3/movie/${val}?api_key=${api}`
);
console.log(val);
});
} catch (err) {
console.log(err);
}
}
someFunction();
推荐阅读
- performance - 如何让性能统计支持 KVM 中的“分支”、“分支未命中”等硬件事件
- node.js - 即使卡片出现,Alexa 也没有从技能中发出语音响应
- c# - WPF .NET Core 中的 gRPC 错误
- python - Django 的身份验证方法为已保存的用户返回“无”
- variables - 为模型中的基本文件提供更好的名称建议
- php - 无法在 CentOS 7 上安装 phpMyAdmin
- reactjs - 如何在 Web 视图中启用弹出窗口?
- python-3.x - Python:操作日期和时间
- android - Kotlin 循环遍历 ArrayList
- android - 为什么只有三星公司的手机没有加载 pie 9 中的图像?