javascript - 使用 async await 与 map 保持一致性
问题描述
我有一大堆对象数组。我想得到一些东西然后将它分配给一个新属性,我这样做了
async function t() {
return bigChunkArr.map(async o => ({
...o,
address: await getAddress(o.lat, o.lng)
}))
}
const result = await t() //expected to be array
问题result
仍然是promise
,为什么?
解决方案
此处的 Map 将返回一组承诺。我们可以Promise.all
在返回时使用这些promise 来获得结果。在下面的代码中,t
将返回一个承诺。
const t = () => {
const promises = bigChunkArr.map(async (o) => {
return {
...o,
address: await getAddress(o.lat, o.lng)
}
});
return Promise.all(promises);
}
推荐阅读
- excel - 在使用 libxl 库时,以下部分中使用的这些命令是什么?
- django - 在 Django 模板中访问字典
- java - 使用 intelliJ 时 maven pom.xml 中的未知错误
- c# - 项目未添加到类列表中?
- javascript - 使用 Fetch API 将 JSON 数据发送到 WordPress Admin Ajax 时出现 400 错误
- batch-file - 从批处理文件启动 Docker Desktop 和 Docker 堆栈 (Windows)
- typescript - 如何在打字稿中打印包含通过函数传递的参数的数组?
- c# - 我如何循环遍历方法内的动态 ObservableCollection 类
- user-interface - UI如何知道更新其与正在等待来自其他微服务数据的微服务相关的内容
- sql - 找到至少发言 10 分钟的客户