JavaScript async/await for Promises inside Array.map() [重复]

2023-12-12

给出以下代码

class SomeClass {
  async someFunc() {
    const urlParameters = [0, 1, 2];
    const batchAjaxResult = await urlParameters.map((parameter) => { 
        const result = await $.get(`someUrl/${parameter}`);
        return {
          parameter,
          result
        }
     });

  console.log(batchAjaxResult);

  }
}

JavaScript 将返回一个已解决的 Promises 数组,而不是实际的 Promises 结果。

这可能是由于Array.map()没有作为 Promise 来实现。

是否有基于 Promise 的版本Array.map?

这是问题不同于如何从异步调用返回响应,因为它是关于如何返回包裹在其中的批量响应Array.map.


您可以使用这个简单的函数来链接承诺以实现顺序执行:

function asyncMap(arr, mapper) {
  var q = Promise.resolve();
  return Promise.all(arr.map(v => q = q.then(() => mapper(v))));
}


// Usage

asyncMap([1, 2, 3], v => {
  return new Promise(resolve => {
    console.log("Start " + v);
    setTimeout(() => {
      console.log("End " + v);
      resolve("foo" + v);
    }, 500);
  });
}).then(a => console.log(a));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript async/await for Promises inside Array.map() [重复] 的相关文章

  • 图表.js.如何更改“标签”数组的字体样式?

    我从 Chart JS 库中获取了一个图表 截屏 https i stack imgur com DnuRq png var ctx document getElementById myChart var data labels HTML
  • 玉石压痕错误

    因此 对于我的 Express 网站 我使用 jade 所以我决定尝试修改我的布局文件 以便我可以开始设计我的网站 我修改了原始布局代码 有效 但我开始在任何扩展布局的文件中出现缩进错误 如下所示 500 Error home kevin
  • 在动态创建的元素的onclick函数的属性中传递一个字符串

    我试图在动态创建的锚元素的 onClick 事件处理函数的参数中传递一个字符串 请参阅小提琴http jsfiddle net shmdhussain bXYe4 http jsfiddle net shmdhussain bXYe4 我无
  • 指定 HTML5 输入类型 = 日期的值输出?

    我想将本机日期选择器添加到我的应用程序中 该应用程序当前使用遗留的本地系统 日期输入支持尚未广泛普及 但如果我可以基于兼容性提供这两种实现 那就太理想了 有没有办法指定 HTML 日期选择器给出的值的输出 歌剧的默认设置是yyyy mm d
  • 插件 gulp-babel 错误:插件/预设文件不允许导出对象,只能导出函数

    我现在尝试在我的 Ionic v1 应用程序中使用 JavaScript 2015 ES6 包 json name test version 1 0 0 dependencies ionic native deeplinks 4 18 0
  • 替换img路径jquery

    我正在尝试替换 jquery 中的 img 路径 注入远程页面 replaceexample com thumbs withexample com images 我已经尝试过这个 但似乎不起作用 img attr src replace t
  • 为什么Promise中的代码会同步执行? [复制]

    这个问题在这里已经有答案了 在我的项目中 我有一个很长时间运行的操作 所以我决定将其放入Promise因为我认为这样我就可以在里面的代码继续执行其他操作Promise正在跑步 调试的时候发现外面的代码Promise仅当里面的代码执行Prom
  • NodeJS - 将相对路径转换为绝对路径

    In my 文件系统我的工作目录在这里 C temp a b c d 在 b bb 下有文件 tmp txt C temp a b bb tmp txt 如果我想从工作目录转到该文件 我将使用以下路径 bb tmp txt 如果该文件不存在
  • 基于范围内变量的角度设置形式动作

    我一直在尝试设置一个搜索表单 可以在其中注入表单操作属性 在我的表格中我有
  • 使用 eval 时不会受到 XSS 威胁

    我正在制作 不是现在 但我仍然对这个感到好奇 一款使用 HTML5 和 JS 的游戏 我想要的是人们可以插入自定义脚本 但要安全 function executeCustomJS code eval code bad 当然这段代码非常糟糕
  • 文件缓存:查询字符串与上次修改时间?

    我正在研究缓存网站资源的方法 并注意到大多数与我类似的网站都使用查询字符串来覆盖缓存 例如 css style css v 124942823 后来 我注意到每当我保存 style css 文件时 最后修改的标头都会 更新 使得查询字符串变
  • 为什么浏览器允许onmousedown JS改变href?

    我很长时间以来都注意到 当您尝试复制链接位置或在 Facebook 上打开链接时 它会修改链接并将其传递给l php 例如 我可以被发送到 http www facebook com l php u http 3A 2F 2Fwww goo
  • 为什么 console.log() polyfill 不使用 Function.apply()?

    我一直在看一些流行的console log 包装 填充 保罗 爱尔兰的 http paulirish com 2009 log a lightweight wrapper for consolelog 本阿尔曼的 http benalman
  • JavaScript setTimeout 和更改系统时间会导致问题

    我注意到如果我设置setTimeout未来1分钟 然后将我的系统时间更改为过去5分钟 setTimeout功能将在 6 分钟后触发 我这样做是因为我想看看夏令时系统时钟更改期间会发生什么 我的 JavaScript 网页使用setTimeo
  • eventSources 到事件 Json,完整日历

    我正在尝试从 eventSources 获取 json 调用到我的事件 我在 eventSources 中返回的 json 是 title Title Test start 1305841052 当我将此字符串传递到事件中时 它会正确显示日
  • 有序 JSON 对象

    我有一个 servlet 它与数据库通信 然后返回有序 按时间排序 对象的列表 在servlet部分 我有 access DB returns a list of User objects ordered ArrayList users M
  • 从json中获取所有子节点

    我有以下 json var source k 01 k 02 children k 05 k 06 children k ABC k PQR k 07 k 03 我希望能够指定 k 的值并取回所有孩子 以及孙
  • 如何强制下载图片?

    我的页面上有一个动态生成的图像 如下所示 img src 我不想告诉我的用户右键单击图像并点击保存 而是想公开一个下载链接 单击该链接将提示下载图像 如何实现这一目标 最初我在 js 中尝试这样做 var path my image att
  • 突出显示单词并提取其附近文本的函数

    我有一个文本例如 Etiam porta semmalesuada magna mollis euismod 整数取数 ante venenatis dapibus posuere velit aliquet 埃蒂亚姆 门塔 塞姆 male
  • 拉斐尔路径交叉点不起作用

    我对拉斐尔和 pathIntersection method JSFiddle 示例 http jsfiddle net t6gWt 2 您可以看到有两条线都与曲线相交 但当我使用 pathIntersection method 有一个未解

随机推荐

  • 捆绑了依赖项的 JavaFX jar

    我刚刚提出了一个关于使用javafxpackager制作JavaFX jar的问题 你可以看看here 我的问题是我无法在清单中包含类路径 好吧 当我等待答案时 我尝试了maven antrun plugin反而 它工作得很好 我可以使用依
  • 如何获取struts标签中的JSP scriptlet值

    这是我的代码 如果我执行以下操作 我将不会获得该值
  • 管道“cd”或“popd”输出会阻止更改目录吗?

    我明白 自从 为命令启动一个新进程after管道 任何形式的 shell 命令cmd cd newdir where cmd不更改当前工作目录 将保持原始进程的工作目录不变 更不用说这有点愚蠢了 因为cd不从 stdin 读取输入 但是 在
  • Google Apps 脚本按钮:我可以分配未附加到工作表的“全局”脚本吗?

    我有一个脚本 想将其分配给多个不同电子表格上的按钮 如果我在电子表格上创建一个按钮并引用存储在 Google 驱动器上另一个父文件夹中的脚本 我会收到错误Script function myScript could not be found
  • @autoreleasepool 没有 ARC?

    我是 Xcode 4 2 的新手 还没有完全熟悉 ARC 然而 我确实读到 autoreleasepool 取代了自动释放池的手动使用 并在幕后做了一些特殊的魔法来与 ARC 很好地配合 然而 当我在 Xcode 4 2 中启动一个新项目时
  • 同步动态加载 JavaScript

    我正在使用模块模式 我想做的一件事是动态包含一个外部 JavaScript 文件 执行该文件 然后在return 我的模块 我不知道如何轻松做到这一点 是否有执行伪同步外部脚本加载的标准方法 function myModule var ta
  • 奥利奥:广播接收器不工作

    每当用户拨打新电话时 我试图在我的应用程序上获取通知触发器 我正在我的活动中注册接收器并在 onDestroy 方法中销毁它 以下是注册的代码片段 registerReceiver inComingCall new IncomingCall
  • 在 JavaScript 中序列化/反序列化对象的最佳方法?

    我的应用程序中有许多 JavaScript 对象 例如 function Person age this age age this isOld function return this age gt 60 before serialize
  • 获取 API post XML 请求错误

    我没能做到fetch发布请求 它返回一个400 bad request error fetch http 192 168 1 6 49152 ctl RenderingControl method POST headers SOAPActi
  • 箭头函数比 v8 中的普通独立函数声明更快(性能更高、更轻)吗?

    我问这个问题是因为我和我的同事在编码风格上存在争议 因为他更喜欢箭头函数声明 const sum a b gt a b 我更喜欢旧式的独立函数声明 function sum a b return a b 我的观点是 旧式代码更具可读性 您可
  • 下载进度状态,从 Google 云端硬盘下载文件时?

    我可以从 Google 云端硬盘下载文件 但我想知道下载进度 谁能告诉我该怎么做 我已经尝试过这样下载文件 NSString downloadURL self driveFiles objectAtIndex indexPath row d
  • 源文件与构建模块时不同

    这真让我抓狂 我有一个相当大的项目正在尝试修改 我早些时候注意到当我输入时DbCommand Visual Studio没有对其进行任何语法高亮 我正在使用usingSystem Data Common 尽管没有突出显示任何内容 该项目似乎
  • 如何使用 Inno Setup 创建一个安装程序来提取 .rar 存档的内容?

    我想在 Inno Setup 中创建一个安装程序 它提取预先创建的内容Data rar档案 我的意思是它应该将 rar 存档的内容视为应用程序的文件和文件夹 通过 Inno Setup 使用外部提取实用程序的通用方法 创建档案 将存档嵌入到
  • Material-UI LinearProgress 栏不起作用

    我有一个简单的文件上传实用程序 我正在使用它反应 dropzone 并结合我想使用material ui LinearProgress bar来显示进度 下面显示的是我创建的组件 它呈现文件上传实用程序以及 LinearProgress 栏
  • 在 React 项目上运行 NPM start 后出错

    我已将项目从以前的计算机复制到当前的计算机 跑步后npm install And npm start我的终端给出了这个错误 sh 反应脚本 找不到命令npm 错误 文件shnpm 错误 代码 生命周期npm 错误 错误信息npm 错误 系统
  • Java 1.7 重写 hashCode() 的行为不符合我的预期

    我有一个类 我重写了 hashCode 方法和 equals 方法 equals 方法的行为符合我的预期 但是 hashCode 方法的行为似乎并不符合我的预期 我假设我的期望是不正确的 但不确定为什么 以下是重写的方法 public cl
  • .not() 和 .live() 不起作用

    jQuery a not div mnuMain a live click function event event preventDefault alert yes I got u 如何让它发挥作用 尝试将其全部放入主选择器中 Examp
  • 在 Hibernate 中指定“唯一的”限制

    我有一个实体 我想在其中指定两个字段应具有唯一对值的限制 例如 一个字段是所有者 另一个字段是名称 我想要一个限制 即 所有者 名称 的组合应该是唯一的 但我不想将它们设为复合主键 Entity Table name keyfile pub
  • Meteor:资源解释为图像,但以 MIME 类型 text/html 传输

    我正在使用 Meteor 0 5 2 并且在 Chrome 中针对每个由模板助手生成 src 的图像收到以下警告 Resource interpreted as Image but transferred with MIME type te
  • JavaScript async/await for Promises inside Array.map() [重复]

    这个问题在这里已经有答案了 给出以下代码 class SomeClass async someFunc const urlParameters 0 1 2 const batchAjaxResult await urlParameters