如何将 .map() 与 Promise 结合起来? [复制]

2023-12-10

我有一个数组,对于该数组的每个元素,我需要fetch一些数据(取决于元素)并将该数据添加到数组中的元素。

为了举个例子,我将模拟fetch带有 Promise(在现实生活中,这将是网络服务的答案):

let p = new Promise((resolve, reject) => resolve('x'))
let a = ['a', 'b']
a = a.map(x => p.then(y => x + y))
console.log(a)

我期望的是第一个元素(a) p被调用,并在解析后将结果添加到a(给予ax)。同样适用于b.

最终我期待一个新的数组['ax', 'bx'].

我得到的是一系列 Promise

作为 Promise 的新手(我觉得理论上很棒),我很难理解这里出了什么问题。是否可以合并.map()以及其中的异步操作?


我期待一个新的数组['ax', 'bx'],但我得到的是一系列 Promise

这正是Promise.all是为.当然,它不会生成一个普通数组,而是生成一个承诺,但是当您执行任何异步操作时,您无法避免这种情况。

const promises = a.map(x => p.then(y => x + y))
Promise.all(promises).then(console.log, console.error)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 .map() 与 Promise 结合起来? [复制] 的相关文章

随机推荐

  • 字典中值的字典 KeyError

    我在字典中有一个字典 123456789 u PhoneOwner u Bob Frequency 0 98765431 u PhoneOwner u Sarah Frequency 0 这个想法是扫描号码拨打的电话列表并与字典进行比较 每
  • 使用 Flexbox 连续显示 4 个 div

    我试图使用下面的 html 在一行中显示 4 个框 所以一排应该有 4 个盒子 我总共有 8 个盒子 有 2 行 4 列 div class parent div class child box1 A Child div div class
  • Android WebView 在 WebView 中单击打开,而不是默认浏览器

    我使用 WebView 做了一个示例应用程序 在该 Web 视图中 URL 来自 Web 服务 它工作正常 但如果我单击该 WebView 中的任何链接 它会自动转到默认 Web 浏览器 但我只想在我的应用程序网络视图中打开 这是我的代码
  • “不是空格也不是连字符”的正则表达式是什么

    我尝试了这个 但它不起作用 s 有任何想法吗 s 应该有效 所以会的 s char 类 在 char 类内部 是个 否定词出现在开头时 s 空格的缩写 字面连字符 连字符是 元字符位于 char 类中 但不是 当它出现在开头或 在最后
  • Websocket 不支持 SSL

    https www hi todd com websocket 我使用 MQTT 协议创建了一个演示 它在 HTTP 连接下运行良好 但是当我尝试将 HTTP 更改为 https 时 出现连接错误 我已在 mosquitto conf 文件
  • 是否可以选择带有 nth-child 的最后 n 个项目?

    使用标准列表 我尝试选择最后 2 个列表项 我有各种排列An B但似乎没有选择最后两个 li nth child n 2 selects from the second onwards li nth child n 2 selects ev
  • 在 Perl 中,如果强制使用 foreach 循环,如何找到字符串中匹配的位置?位置

    我必须使用 while 循环找到较大字符串中匹配字符串的所有位置 并使用 foreach 循环作为第二种方法 我已经弄清楚了 while 循环方法 但我陷入了 foreach 方法 这是 while 方法 my sequence AACAA
  • 在iOS中,如何向下拖动来关闭模态框?

    关闭模态框的常见方法是向下滑动 我们如何允许用户向下拖动模态框 如果足够远 则模态框被关闭 否则它会动画回到原始位置 例如 我们可以发现它用于 Twitter 应用程序的照片视图或 Snapchat 的 发现 模式 类似的线程指出 当用户向
  • Android 10 版本之后如何验证 IMEI 号码?

    我需要验证 IMEI 号码 他们有验证输入 IMEI 的机制吗 我们可以获得 true 或 false 的验证状态吗 您不能 第三方应用程序不能使用 IMEI 也不能使用手机的序列号和其他不可重置的设备标识符 对不可重置设备标识符的限制 从
  • 在上下文菜单中定位菜单项图像(MENUITEMINFO 的 hbmpItem)

    我正在将菜单项插入到主题文本控件的 Outlook 上下文菜单中 在这里您可以找到我之前提出的有关执行此操作的问题 我遇到的问题是 菜单项的图像在 Outlook 2010 中的位置很奇怪 在 Outlook 2007 中 它的位置不同 在
  • C++ 使用 ShellExecute 打开链接

    如果我这样写 ShellExecute NULL open www google com NULL NULL SW SHOWNORMAL 一切都很好 而且都是应该的样子 但我希望用户可以输入他想去的链接 std cout lt lt Ent
  • 找到两个数组之间的最小差异[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 给定两个排序数组 A 和 B 找到 i j 其中 A i B j 是最小值 由于数组已排
  • 添加键盘快捷键来执行 Chrome 扩展

    我创建了一个 chrome 扩展 我想使用键盘快捷键来执行它 Snippet suggested key default Ctrl Shift F 我尝试过不同的组合 例如 Ctrl Shift A Ctrl Shift D Alt X 和
  • 需要 T-SQL 查询找到所有可能的方式

    create table sample product varchar 100 Price float insert into sample values Pen 10 insert into sample values DVD 29 in
  • 滞后看不到 mutate 对前一行的影响

    我似乎偶然发现了一个mutate lag ifelse我无法解释的行为 我有以下 简化的 数据框 test lt data frame type c START END START START START START END strings
  • 跳跃列表与二叉搜索树

    我最近遇到了一种称为跳过列表 它似乎与二叉搜索树具有非常相似的行为 为什么要在二叉搜索树上使用跳跃列表 跳过列表更适合并发访问 修改 赫伯 萨特写了一篇article关于并发环境中的数据结构 它有更深入的信息 二叉搜索树最常用的实现是红黑树
  • 在 Ubuntu 中从源存储库升级 git

    我想使用升级 git源存储库在Ubuntu中 正如您所注意到的 最后一个稳定版本是 2 0 2 但我有 1 9 4 我克隆了 git 存储库 但我不知道如何继续 我想以某种方式做到这一点 我可以理解如何与存储库的分支和标签进行交互 所以我不
  • Flutter中如何使用UUID访问数据库?

    我正在使用以下函数来检索 UID FirebaseAuth auth FirebaseAuth instance getUID async final FirebaseUser user await auth currentUser fin
  • 在 SQL 中而不是在 Group By 中选择列

    我一直在尝试查找一些有关如何选择 SQL 中 Group By 语句中未包含的非聚合列的信息 但到目前为止我发现的任何内容似乎都无法回答我的问题 我有一个包含我想要的三列的表格 一个是创建日期 一个是按特定声明 ID 对记录进行分组的 ID
  • 如何将 .map() 与 Promise 结合起来? [复制]

    这个问题在这里已经有答案了 我有一个数组 对于该数组的每个元素 我需要fetch一些数据 取决于元素 并将该数据添加到数组中的元素 为了举个例子 我将模拟fetch带有 Promise 在现实生活中 这将是网络服务的答案 let p new