等待所有的 Promise 在 Node.js 中用 Bluebird 完成

2024-01-20

在使用 bluebird 的 Node.js 中等待所有 Promise 完成的最佳方法是什么?假设我想从数据库中选择记录并将它们存储在 redis 中。我想出了这个

loadActiveChannels: function() {
    return Knex('game_channels as ch')
    .where('ch.channel_state', '>', 0)
    .then(function(channels) {
        var promises = [];
        for(var i=0; i<channels.length; i++) {
            var promise = redis.hmsetAsync("channel:"+channels[i].channel_id, _.omit(channels[i], 'channel_id'))
            promises.push[promise];
        }
        return Promise.all(promises);
    }).then(function(res) {
        console.log(res);
    })
}

不确定它是否按我的预期工作。所有条目都在 redis 中,但 console.log 显示空数组。它不应该包含一个“OK”数组吗,因为它是redis在履行承诺后返回的消息?我在这里缺少什么?


.map这里很方便:

loadActiveChannels: function() {
    return Knex('game_channels as ch')
    .where('ch.channel_state', '>', 0)
    .map(function(channel) {
        return redis.hmsetAsync("channel:"+channel.channel_id, _.omit(channel, 'channel_id'))
    }).then(function(res) {
        console.log(res);
    })
}

您的原始代码没有得到任何输出的原因是因为您有promises.push[promise];本来应该是promises.push(promise)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

等待所有的 Promise 在 Node.js 中用 Bluebird 完成 的相关文章

  • Node.js 未处理的“错误”事件

    我编写了一个简单的代码并将其保存在文件 try js 中 var http require http var makeRequest function message var options host localhost port 8080
  • Express中间件修改请求

    我目前有一个正在运行的服务器 前端使用nodejs mongo express 和 W2UI W2ui 请求来自包含所有参数的记录数组 记录 名称 foo 我想编写一个中间件 在请求到达路由之前对其进行编辑和更改 您可以创建自己的中间件来处
  • 如何在node.js中存根process.env?

    我想存根process env FOO with bar var sinon require sinon var stub sinon stub process env FOO bar 我很困惑 我阅读了文档 但仍然不明白 sinonjs
  • axios 请求中未发送正文数据

    我试图通过 axios 请求将数据发送到我的后端脚本 但正文看起来是空的 这是前端发送的请求 axios request method GET url http localhost 4444 next api headers Authori
  • 如果没有“new”,则无法调用类构造函数

    感谢这个问题已经被问过几次了 但是我遇到的几乎所有情况都是有人试图扩展非本地类的情况 我的情况有所不同 我有一个非常简单的基类 名为CObject如下 export class CObject extends BaseObject cons
  • 如何将多个 api 请求中的多个可读流传输到单个可写流?

    期望的行为 实际行为 我尝试过的 重现步骤 研究 期望的行为 将从多个 api 请求接收到的多个可读流传输到单个可写流 API 响应来自 ibm watsontextToSpeech synthesize https cloud ibm c
  • API 使用令牌向 odoo 进行身份验证

    我想使用令牌从 Express 应用程序向 Odoo 进行身份验证 我在用odoo xmlrpc https www npmjs com package odoo xmlrpc连接 Odoo 的节点模块 我的快递应用程序 Odoo 要求 A
  • Nodejs 调试生产中的错误

    我有一个在生产环境中运行的 Nodejs 脚本 我不太可能 千分之一 遇到这样的错误 TypeError value is out of bounds at checkInt buffer js 1009 11 at Buffer writ
  • 为什么这行带有“await”的代码会触发微任务队列处理?

    以下引用是我理解微任务队列处理的主要参考 当 JS 堆栈清空时 就会处理微任务 承诺使用 杰克 阿奇博尔德 https twitter com jaffathecake status 954653170986311680 这对我来说没有意义
  • Node.js 升级在 Windows 中仍然显示旧版本

    我已使用 msi 安装程序下载并安装了新版本的 nodejs 4 1 2 之后我跑了node v 但它仍然显示旧版本 0 12 2 我尝试重新启动Windows 甚至卸载nodejs并重新安装它 但仍然显示相同的内容 为什么会发生这种情况
  • 尝试安装 LESS 时出现“请尝试以 root/管理员身份再次运行此命令”错误

    我正在尝试在我的计算机上安装 LESS 并且已经安装了节点 但是 当我输入 node install g less 时 出现以下错误 并且不知道该怎么办 FPaulMAC bin paul npm install g less npm ER
  • HTML 格式的 Google Apps 脚本

    是否可以在我的 HTML 中使用 google apps 脚本 我希望能够从外部框架 例如 Node js 以纯 Javascript 形式从表单写入电子表格 https developers google com apps script
  • 如何使用 sinon/mocha 模拟 npm 模块

    我正在尝试测试调用该模块的函数cors 我想测试一下cors会被称为 为此 我必须存根 模拟它 这是函数 cors js const cors require cors const setCors gt cors origin http l
  • npmjs.org - 找不到自述文件

    我是 npm 包的主要作者scramjet 一个月以来 我遇到了关于可视性的问题README md在 npmjs 中 The npm 中的超燃冲压发动机包 https www npmjs com package scramjet shows
  • 使用 React.js + Express.js 发送电子邮件

    我在 ES6 中使用 React js 构建了一个 Web 应用程序 我目前想要创建一个基本的 联系我们 页面并想要发送电子邮件 我是 React 新手 刚刚发现我实际上无法使用 React 本身发送电子邮件 我正在遵循教程nodemail
  • Chrome/Firefox 在后台发送两个 POST,间隔恰好 5 秒,仅调用一次来获取 Nodejs 8.0.0 服务器

    注意 这不是飞行前选项 也不是网站图标或其他类似内容 实际上是 2 个帖子 下面有一个屏幕截图可以更清楚地显示这一点 我的规格 版本 macOS 塞拉利昂版本 10 12 3 Chrome 版本 61 0 3128 0 官方版本 开发版 6
  • 如何解决 Socket.io 404(未找到)错误?

    我正在使用 Socket io 和 Express 在我的项目中 我有一个登录页面和一个主页 当我成功登录时 我导航到 localhost 3000 home 并收到以下错误 GET http localhost 3000 socket i
  • 如何将 emscripten 浏览器输入法从 window.prompt 更改为更合理的输入法?

    我有一个 C 函数 一旦调用它就会消耗来自 stdin 的输入 使用 emscripten 将此函数导出到 javascript 会导致调用 window prompt 与浏览器提示交互确实是一项乏味的任务 首先 您一次只能粘贴一行 其次
  • Node.js 重写 toString

    我试图覆盖我的对象的默认 toString 方法 这是代码和问题 function test this code 0 later on I will set these this name test prototype toString f
  • 如何使用Create React App安装React

    嗨 我对反应真的很陌生 我不知道如何实际安装它 也不知道我需要做什么才能在其中编写代码 我下载了node js并且安装了v12 18 3以及NPM 6 14 6 但是每次我尝试在许多网站上提到的create react app安装方法中输入

随机推荐

  • Docker 中的 ng build --prod 非常慢

    当我尝试在 docker 中构建 angular7 项目时 大约需要 40 分钟 需要40分钟的线路是 ng 构建 prod 92 块资产优化 TerserPlugin 我在同一台笔记本电脑上在 docker 外部运行了 ng build
  • 创建 vscode 主题时如何自定义命令调色板颜色和键绑定

    为自己创建一个 VSCode 主题 我喜欢目前的颜色配置 但是当我打开命令调色板时 它是 透视 的 因此很难阅读 设计主题时如何配置调色板 V1 36为命令调色板 快速打开面板添加了这两个颜色自定义 quickInput backgroun
  • Gcc 隐藏来自包含的静态库的符号的可见性

    I have 一个共享库 比如说libShared so 其中包含一个类Bar 用一种方法int Bar do int d const 一个静态库 比如说libStatic a 其中包含一个类Foo 用一种方法int Foo act int
  • 如何在 C# 中更改 EMF+ 图像的颜色

    我正在尝试开发一种特殊类型的热图 其中标记的颜色取决于某些计算变量的值 我需要做的是更改现有 EMF Image 的颜色 以下代码在使用 png 或 wmf 文件时非常有用 但在使用 EMF 文件时 DrawImage 不会绘制任何内容 E
  • 如何创建非托管 Neo4j 扩展?

    我对我的项目有一些具体要求 因此我决定实现非托管 Neo4j 扩展 我在 Neo4j 文档中找到了这些信息 非托管扩展 http neo4j com docs stable server unmanaged extensions html
  • ARKit 人物遮挡样本是如何完成的?

    这可能是一个晦涩的问题 但我在网上看到了很多非常酷的示例 展示了人们如何使用 ARKit 3 中新的 ARKit 人物遮挡技术来有效地将人物与背景 分离 并对 人物 应用某种过滤 人 见 在查看苹果提供的源代码和文档时 我发现我可以检索se
  • scala 中 Magic 的 ColumnNotFound 问题

    我收到 play exceptions JavaExecutionException 尝试后在一段代码中出现 ColumnNotFound comments id 迁移到 MySql 而不是 memorydb Magic 对 Postgre
  • Graphics.MeasureString 允许过多空白

    我正在使用一个函数来调用要在区域内呈现的一段文本 该函数的基本工作原理是 Dim measureSize as Size Do myFont new Font myFont Name myFont Size 1 FontStyle Regu
  • 同时ajax请求angularjs?

    我想一次发送多个ajax请求 这是我的js代码 a class btn btn success Re Check a app controller customersCrtl function scope http timeout func
  • 是否可以缓存 lambda 表达式中计算的值?

    下面代码中的ContainsIngredients方法中 是否可以缓存p 成分value 而不是多次显式引用它 这是一个相当简单的示例 我只是为了说明目的而编写的 但我正在处理的代码引用了内部深处的值p eg p InnerObject E
  • glfwGetVideoMode(glfwGetPrimaryMonitor()) 不起作用

    所以我正在观看关于如何使用 Lwjgl 创建窗口的 java 教程 我到达了这部分 您可以在其中获得主监视器 ByteBuffer vidmode glfwGetVideoMode glfwGetPrimaryMonitor glfwSet
  • 如何设置默认的Windows套件(SDK)版本?

    我曾经在我的 C 应用程序中使用 Windows 8 1 SDK 一切正常 今天我安装了 Windows 10 SDK 但找不到一种方法将其设为默认 我可以在 Visual Studio 项目设置中对新的 SDK 路径进行硬编码 但这是非常
  • Xcode - 单元测试 - 针对 iOS 12 进行编译,但模块的最低部署目标为 13

    我在运行单元测试时遇到问题 问题位于代码行下方 testable导入PROJECT NAME Error Compiling for iOS 12 1 but module PROJECT NAME has a minimum deploy
  • AndroidcameraSource.stop()导致应用程序冻结

    我正在使用 google Vision API 构建一个具有二维码扫描仪的应用程序 读取二维码后 我无法停止相机 流量是MainActivity gt QrActivity一旦二维码收到检测 应用程序应返回到主活动 如果我不打电话camer
  • 重新定义/隐藏局部变量有多糟糕?

    在将遗留项目升级到 VS2015 时 我注意到存在很多错误 例如在函数内部重新定义局部变量 void fun int count applesCount cout lt lt Apples cost lt lt count 1 25 for
  • Rails - 有两个父母的嵌套资源

    假设我有一个带有两个父模型的子模型 Event has many tickets Person has many tickets Ticket belongs to Event Ticket belongs to Person 路线已映射
  • SocketException:使用 UdpClient 打开端口时“访问被拒绝”

    我正在尝试开始侦听 Android 设备上的 UDP 端口之一 我正在使用 Xamarin Forms 并在物理 Android 手机上测试它 public void StartListening int port 13000 Listen
  • 手动更新 Carrierwave Uploader 安装的属性

    我无法在由 Carrierwave 上传程序安装的属性上使用 model update attribute SQL 语句不会接受该值并将 NULL 添加到占位符 如果我从模型类中删除 mount uploader 语句 它会正常工作 我正在
  • Angular ng-if="" 具有多个参数

    我正在尝试开始角度开发 在查看文档后 仍然存在一些问题 我怎样才能最好地写一个ng if有多个参数对应于 if a b or if a b 有可能的 span I m removed when the checkbox is uncheck
  • 等待所有的 Promise 在 Node.js 中用 Bluebird 完成

    在使用 bluebird 的 Node js 中等待所有 Promise 完成的最佳方法是什么 假设我想从数据库中选择记录并将它们存储在 redis 中 我想出了这个 loadActiveChannels function return K