javascript - 在 NodeJS 上暂停和恢复 PostgreSQL 连接

标签 javascript node.js postgresql asynchronous pg

如何成功暂停和恢复 PostgreSQL/node.js 的数据库连接?这是我想要实现的想法:

query
.on('error', function(err) {
    // Handle error
})
.on('row', function(row) {
    // Process a row but first pause connection so it wont keep getting into 'row' event and finish processing this row first
    pgconnection.pause();

    async.series([
      functions()
    ])

    pgconnection.resume();
})
.on('end', function() {
    //Rows have been received and finish
});

现在我一直在探索 pg 和 pg-query-stream 模块,但还没有任何运气。主要目标是在移至下一个“行”事件或“结束”事件之前完成“行”事件中的每个异步函数。

任何反馈将不胜感激

最佳答案

您看错了方向,试图对异步代码应用同步限制。它不会工作。即使这样做了,结果也会很糟糕,无法扩展。

您应该做的是熟悉 promises ,这是您问题的答案。

The main objective is to complete every single async function

标准Promise.all这样做。

I've been exploring pg and pg-query-stream modules but havent got any luck yet

pg 是一个异步模块,pg-query-stream 应该尽可能快地工作,因为它是一个流。您不会阻止流,这不是它们的工作方式。如果您的代码逻辑无法处理从流中分页数据的方式,那么您的代码有问题,而不是流提供程序。然后再次学习 promise 以及如何正确使用它们。

关于javascript - 在 NodeJS 上暂停和恢复 PostgreSQL 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37513701/

相关文章:

javascript - React 和 Webpack - 多页面应用程序的项目设置

javascript - 不跳转的滚动窗口(javascript 或 hashtag)

html - 为什么 Chrome 将这个 HTML 呈现为一个完全空白的页面?来自 Node.js,遵循 The Node Beginner Book

javascript - NodeJS-App - DOM 操作?

postgresql - 在 PostgreSQL 中每行只执行一次延迟触发器

postgresql - 使用 AWS Glue 时如何在 Postgres 中将字符串保存为 JSONB 类型

javascript - 将数组元素随机分配到新数组

javascript - 从 Highchart 图表中删除图像/符号

node.js - 为 mocha 测试调用路由

postgresql - Prisma 与 Bit.io 连接问题