在 forEach 中进行异步调用

2023-12-06

我正在尝试迭代对象数组并使用 Node.js 中的异步函数在这些对象中添加一些内容。

到目前为止我的代码如下所示:

var channel = channels.related('channels');
channel.forEach(function (entry) {

    knex('albums')
        .select(knex.raw('count(id) as album_count'))
        .where('channel_id', entry.id)
        .then(function (terms) {
            var count = terms[0].album_count;
            entry.attributes["totalAlbums"] = count;
        });

});
//console.log("I want this to be printed once the foreach is finished");
//res.json({error: false, status: 200, data: channel});

我怎样才能在 JavaScript 中实现这样的事情呢?


既然您已经在使用承诺,最好不要将该隐喻与async。相反,只需等待所有承诺完成即可:

Promise.all(channel.map(getData))
    .then(function() { console.log("Done"); });

where getData is:

function getData(entry) {
    return knex('albums')
        .select(knex.raw('count(id) as album_count'))
        .where('channel_id', entry.id)
        .then(function (terms) {
            var count = terms[0].album_count;
            entry.attributes["totalAlbums"] = count;
        })
    ;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 forEach 中进行异步调用 的相关文章

  • 在 WSL Ubuntu 20.04 上安装 npm 后,我收到消息“/usr/bin/env: ‘bash\r’: No such file or directory”

    运行时我看到以下消息npm install or npm来自终端的命令 执行中node按预期工作 gt npm install usr bin env bash r No such file or directory 2023 年 7 月更
  • 所有事件的 HTML5 EventSource 监听器?

    我使用 EventSource 在 JavaScript 客户端应用程序中推送通知 我可以像这样附加事件监听器 source addEventListener my custom event type function e console
  • Facebook 自定义故事与大图像 - 使用 Javascript 打开图

    我正在尝试创建一个自定义故事 每次有人尝试发布它时都会有一个新图像 现在我创建了一个对象 以及将两者结合起来的动作和故事 我想要实现的是一个看起来像这样的故事https fbcdn dragon a akamaihd net hphotos
  • 如何翻转 Twitter Bootstrap 的工具提示

    我正在使用 Twitter 的 Bootstrap 来实现工具提示 目前 工具提示显示在链接上方 我希望工具提示出现在链接下方 我该怎么做呢 我正在触发工具提示 它明确指出 底部 但它不想为我工作 tooltip tooltip place
  • npm install 的 --save 选项是什么?

    我看到一些教程 其中命令是 npm install save 什么是 save选项是什么意思 更新 npm 5 As of npm 5 0 0 http blog npmjs org post 161081169345 v500 安装的模块
  • jQuery 选择器定位具有 id AND class 的元素不起作用

    我有以下事件处理函数 jQuery document on click button submitb function e alert jQuery 包含在 html 文档中 但是 如果我点击 div class submitb Go di
  • 为什么存在 async 关键字

    浏览 msdn 9 频道视频时 我发现以下未答复的评论 希望有人能解释一下 我不明白 async 关键字的意义 为什么不直接允许 任何时候方法返回任务时都会使用await关键字 就像迭代器一样 可以在任何返回 IEnumerable 的方法
  • 从 html5

    我正在寻找一种方法来根据用户代理字符串将控件属性添加到视频标签 我不希望在 iPad 和 Android 之外的任何浏览器或设备上出现控件属性 所以我认为用户代理是最好的识别方法 因为 ipad 和 android 一词出现在各自的 UA
  • Docusaurus 2 中的自定义搜索栏

    我正在尝试 Docusaurus V2 我想使用 LUNR 启用离线搜索 https lunrjs com https lunrjs com 按照本博客中的描述进行搜索 https v2 docusaurus io feedback p o
  • 在 JQuery ui 自动完成中显示图像

    我有一个带有 JQuery ui 自动完成功能的脚本 可以完美运行 有一个显示用户名字和姓氏的搜索过程 但在我的数据库中 还有用户的图片 我想将其显示在带有名字和姓氏的建议中 数据库中pic包含图片url 剧本 function searc
  • 动态更改 vuejs 2 中的选择输入选项

    如何动态更改选择下拉 v model 中的选项 我有 2 个选择输入 其中一个应该根据其他输入进行更改 例如 如果我选择 水果 则选择显示水果 如果我选择 蔬菜 则选择显示蔬菜 我不使用Vuejs 但查看文档后 var TypesArr F
  • 在移动网站中处理 iPhone 事件(如向左滑动)

    iPhone 浏览器是否有可以使用 Javascript 挂钩的特殊事件 例如 如果用户向左滑动 我想执行某个操作 如果有类似的活动 很高兴看到所有这些活动的参考 理想情况下 有一天所有触摸屏移动浏览器都会有一个标准 您可以访问多点触控事件
  • lessc:未找到命令

    我使用的是 OS X 8 并且是 Node LESS 的新手 我以为我之前安装了 lessc 当我转到 usr local bin 时 我看到了 lessc 但对于我的生活来说 我无法运行它 每当我运行它时 我都会看到 bash lessc
  • 模拟节点外部模块默认使用 jest 的链式方法

    在我们的节点 CLI 中 我们有一个简单的方法 use strict const ora require ora module exports function startSpinner textOnStart color spinnerT
  • 如何从 Node.js 中的 Http.IncomingMessage 检测 http 与 https

    给定一个Http IncomingMessage由一个创建http s Server为了响应请求 检测请求是否是 http 与 https 的正确 推荐方法是什么 一些我不知道的随机想法是否正确 检查端口 seems wrong might
  • 什么是 TinyMCE jQuery 包?

    我被要求在项目中使用 TinyMCE 编辑器 在下载页面上 有一个主包 然后是一个 jQuery 包 This package contains special jQuery build of TinyMCE and a jQuery in
  • 角度 4 单击按钮功能未触发

    我正在尝试检查文本输入是否为空或不在角度 4 中 我没有为此使用表单 这只是一个输入字段 当我在下面的按钮中执行 addLocaton 函数时 需要进行检查 我的输入字段
  • 如何在 Twilio 可编程聊天中的单个通道上侦听消息

    Using twilio chat js https www npmjs com package twilio chat如何在单个频道上收听消息 我发现这个问题 https stackoverflow com questions 54687
  • Javascript/jQuery 外部高度()

    Does idOfLememt outerHeight 对所有浏览器产生相同的结果 IE7 有什么不同吗 只要去http api jquery com outerHeight http api jquery com outerHeight
  • Angular 2:使用正则表达式进行数字验证

    我正在尝试验证 IE 11 中的数字字段

随机推荐

  • Java-如何为 JFrame 设置 setToolTipText

    我想将鼠标移动到使用 g2D drawRenderedImag 在 JFrame 上绘制的图像上 并在鼠标光标旁边的工具提示文本处显示该像素的 x y IE Graphics2D g2D Graphics2D g g2D drawRende
  • 重载S3通用加法和乘法函数

    我正在尝试重载通用 S3 add 函数 和乘法函数 到目前为止 我成功地重载了所有 Ops 操作员 功能 foo lt structure list value 1 txt a class foo Ops foo lt function e
  • 围绕图片中心旋转图片

    有没有一种简单的方法可以使图片绕其中心旋转 我用了一个仿射变换运算第一的 这看起来很简单 而且需要为矩阵找到正确的参数 应该在一个漂亮而整洁的谷歌会话中完成 所以我认为 我的结果是这样的 public class RotateOp impl
  • SQL ORDER BY 从本月开始的月份

    我有一个返回 1 12 月份的查询 INT 有没有办法订购从本月开始的结果 Example 3 4 5 6 7 8 9 10 11 12 1 2 Thanks 编辑 本月描述 我的意思是这个实际的月份 月份 获取日期 按顺序尝试简单的数学计
  • 如何汇款至任何 PayPal 账户

    是否可以使用 paypal API 向任何 paypal 帐户 不仅仅是 API 凭证所有者 汇款 我知道可以使用 IPN 来做到这一点 但我需要使用 SOAP 您有两个主要选项 使用大众支付接口 or 自适应支付 API Note 自适应
  • 如何:在 Apache 2.4.4 上设置虚拟主机 [ MAC / *NIX ]

    我发布这篇文章是因为我最近在使用 MAMP 堆栈设置虚拟主机时遇到了很多麻烦 这是由于 Apple 对 Mac OS 10 8 默认 Apache2 安装上可用 PHP 版本的限制 这是一个关于如何操作的快速指南 我在 Stack Over
  • 如何反序列化带有前缀命名空间但没有 ns 前缀元素的 XML 文档?

    我有一个来自外部源的 XML 文档
  • 前/后递增/递减和操作符顺序混乱

    我正在进行一些练习 但我对此感到困惑 public static int f int x int y int b y while b gt 0 if x 2 0 x y y 2 else x x 2 b b x 1 return x y 目
  • 如何垂直显示范围输入滑块

    我想显示一个
  • 当查询大量数据时,第一次游标操作很慢。怎么解决?

    我必须查询三个表 并将数据显示到我的 customerView 中 我的代码是这样的 Log v TAG System CurrentTimeMillis int len cursor getCount Log v TAG System C
  • 基于选择框的动态部分 - Rails 2.3.5

    我已经编辑了我的请求 希望更清楚 我需要根据先前的选择框动态渲染部分 请求属于产品 产品所属类别 CATEGORY有很多产品 产品有很多要求 用户点击表单 create request html erb 用户选择一个类别 然后填充产品选择列
  • TextRenderer 不绘制长字符串

    看看这个样本 public partial class Form1 Form private static string myString null private const int MAX TEXT 5460 public Form1
  • JDBC 从 Access 表中选择最大值

    每当我运行以下代码时 即使该列存在于我的表中 我也会收到错误 未找到列 我正在使用access数据库 请寻求帮助 public class Trial1 public static void main String args try Cla
  • 动态改变 Objective C 中单元格的高度

    我创建了一个带有表格视图的应用程序 它在每个单元格中使用视图和标签 但是 如果我在 cell 代码中创建视图和单元格 它会返回空单元格 如果我删除 cell 条件 它会显示数据 但不采用动态高度 谁能帮帮我吗 void viewDidLoa
  • Spring 5.0.3 RequestRejectedException:请求被拒绝,因为 URL 未标准化

    不确定这是否是 Spring 5 0 3 的一个错误 或者是一个新功能来修复我的问题 升级后 我收到此错误 有趣的是 这个错误仅出现在我的本地计算机上 使用 HTTPS 协议的测试环境中的相同代码运行良好 继续 我收到此错误的原因是因为我用
  • 如何对 REST API 进行身份验证并映射到 Fabric 凭据

    如何使用用户名 密码创建一个新的用户帐户以针对composer rest server进行身份验证 我如何使用这个新创建的用户帐户针对composer rest server进行身份验证 我将如何管理该用户的会话 如何将此用户映射到网络参与
  • Eclipse 无法正确部署 Gradle 项目

    所以我有一个 gradle 项目 显然与 eclipse 完全集成有一些问题 当我使用 gradle build 命令构建整个内容并在 glassfish4 服务器上部署 EAR 文件时 一切似乎都工作得很好 但是当我尝试运行时 渐变日食
  • Laravel 获取属性数据

    我是 Laravel 新手 使用 Laravel 5 3 我正在创建一个check Laravel 模型中用于用户登录的函数 在这里我使用默认值从数据库获取所有数据 this gt all 这给我带来了一个大的多维 大批 Illuminat
  • Hibernate-无法延迟初始化角色集合:beans.Language.患者,无法初始化代理-无会话

    我使用 hibernate 创建一个 Rest api 我创建了一个方法来获取表中的所有项目 public List
  • 在 forEach 中进行异步调用

    我正在尝试迭代对象数组并使用 Node js 中的异步函数在这些对象中添加一些内容 到目前为止我的代码如下所示 var channel channels related channels channel forEach function e