当前位置: 首页 > 知识库问答 >
问题:

一致性使用异步等待与映射[重复]

邹嘉荣
2023-03-14

我有大块的对象数组。我想得到一些东西然后把它分配给一个新的财产,我这样做了

async function t() {
  return bigChunkArr.map(async o => ({
    ...o,
    address: await getAddress(o.lat, o.lng)
  }))
}
const result = await t() //expected to be array

问题是,结果仍然是一个promise,为什么?

共有1个答案

朱通
2023-03-14

这里的Map将返回一系列promise。我们可以使用promise。返回时获取这些promise的结果。在下面的代码中,t将返回一个promise。

const t = () => {
    const promises = bigChunkArr.map(async (o) => {
        return {
            ...o,
            address: await getAddress(o.lat, o.lng)
        }
    });
    return Promise.all(promises);
}

 类似资料:
  • 然后我有了调用webAPI的dataLayer,它看起来像这样。为了简单起见,我直接使用。result。 我的问题是,我看到一些教程说我们应该避免使用。result,因为它可能会导致死锁。我不确定在我的情况下是否需要使用Async/await?如果我确实需要,我知道我应该一直异步,但我确实希望我的controlLayer是同步的,因为我有其他层调用controlLayer的函数,我不希望所有层的函

  • 我试图在react/electron项目中使用async/await,但它不起作用。我想要的是获取docker容器状态列表。但是安慰。日志(列表)返回未定义的。 有人能帮我吗?:)

  • 问题内容: 给出以下代码: 产生以下错误: TS2322:类型’Promise []’无法分配给类型’number []’。类型’Promise 不可分配给类型’number’。 我该如何解决?怎样才能让和一起工作? 问题答案: 这里的问题是,您正在尝试兑现承诺而不是承诺。这没有达到您的期望。 当传递给的对象不是Promise时,只需立即按原样返回值,而不是尝试解析它。因此,由于您在此处传递了(P

  • 我是ES6新手,所以我学习Javascript语句。 在测试async/await时,我发现了一些奇怪的行为。 我这样写代码, 输出在这里, 我定义async来运行,并等待每一行同步工作。 预期产量在这里, 谢谢。

  • 我想进行一个基于当前状态的API调用,但不能使setState函数作为异步函数工作。 给我错误: 类型为“”的参数(状态:只读)= 如果我在setState方法之外获取数据,它会起作用,但我害怕对过时的页码进行API调用:

  • 我需要在函数中运行各种步骤,但步骤必须按特定顺序运行。我尝试实现一个函数,如下所示: 控制台中的预期结果应该是1,2,3,但我得到了3,2,1。似乎忽略了参数。 编辑功能在上面的示例中仅用于模拟繁重的任务。在我的项目中,我不会使用它。事实上,我需要连接到一个数据库,然后在进入下一步之前重新格式化结果。即使包括,2也会在1之前登录。换句话说,空列表被传递到我的图形,因为没有考虑。以下是我当前的代码: