javascript - 反应从 S3 Bucket 中检索多个图像的正确方法
问题描述
我有一个对象数组,其中的一些项目有一个“徽标”对象,其中包含存储在 S3 存储桶上的图像键。
这是一个可选字段,因此有时它在对象中不存在。为了检索图像,我使用了 AWS-Amplify 的 Storage api。这个存储函数给我一个承诺,这是我的第一个问题。
const fetchUsers = async () => {
setLoading(true);
const formatedData = [];
const { data } = await API.graphql(graphqlOperation(listUsers));
console.log({ data });
data.listUsers.items.map(async user => {
if (user.logo) {
console.log(Storage.get());
const image = await Storage.get(user.logo.key);
user.image = image;
formatedData.push(user);
} else {
formatedData.push(user);
}
})
}
当我等待 Storage.get 函数的响应时,循环继续运行,它正在修改来自数据数组的原始排序。这导致所有具有图像的条目最后出现在数组上。因此,鉴于此,我假设
- 有一种方法可以防止循环在我仍在等待响应时运行
- 有一种更好/更有效的方法可以从 S3 获取这些图像。
任何想法如何使它运行更顺畅?
解决方案
推荐阅读
- reactjs - 避免在多个 setState 上重新渲染
- webpack - Vue CLI:无法加载 localhost:8080
- jpeg - 需要帮助修改和编写 JPG 图像
- visual-studio - 如何使用 Visual Studio 2017+ 删除 GitHub 项目中未使用的 .NET 框架/核心引用?
- javascript - 如何将变量分配给回调?
- python - python上的太空侵略者游戏
- javascript - 我可以创建一个前端 JavaScript 应用程序来触发对另一个网页的隐藏请求以从中抓取数据吗?
- python - VS Code:找不到用于 ipykernel 启动的内核规范
- typescript - vim 标记的模板文字语法区域在打字稿中不起作用
- pattern-matching - 使用 python POO 进行图挖掘:创建图并测试匹配