mysql - promise 在处理完 MySQL 结果中的所有行后执行某些操作

标签 mysql node.js

提前致谢。我正在尝试在处理 MySQL 结果中的所有行后执行某些操作。我尝试使用 Promise 但它不起作用。 有 4600 行,但我只得到 []。我猜我的问题是 NodeJS Async。 这是我的代码:

let paradasRelations = db.query('SELECT * FROM ParadasRelations');

    let paradaPromise = new Promise(function (resolve, reject) {
        let paradasData = [];
        paradasRelations.on('result', function (row) {
            paradasData.push(row);
        });
        resolve(paradasData);
    });
    paradaPromise.then(function (paradasData) {
        console.log(paradasData);
    });

最佳答案

只有在返回所有行并且收到 end 事件后,您才需要解析 Promise。这未经测试,但类似这样的东西应该可以工作:

let paradasRelations = db.query('SELECT * FROM ParadasRelations');

let paradaPromise = new Promise(function (resolve, reject) {
    let paradasData = [];
    paradasRelations.on('result', function (row) {
        paradasData.push(row);
    });

    paradasRelations.on('end', function () {
        resolve(paradasData);
    });
});

paradaPromise.then(function (paradasData) {
    console.log(paradasData);
});

关于mysql - promise 在处理完 MySQL 结果中的所有行后执行某些操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39414344/

相关文章:

php - Mysql/InnoDB 停止在 Linode 服务器上工作

php - 使用 PHP 在 MySQL 表中搜索 Base64 字符串

node.js - 学习 NodeJS 和 MongoDB Docker 组合

json - nodejs JSON.parse(data_from_TCP_socket)

sql - Mysql的伪代码结构?

mysql - 是什么导致 MySQL 不执行 NOT NULL 约束?

找不到 javascript 实例方法 : Object #<Object> has no method 'handleRequest'

node.js - 如何在 mongoskin 中使用读取首选项?

node.js - 如何将 Strapi API 和管理面板与另一个 Node 应用程序(使用 Strapi API)集成?

html - 在 Laravel Markdown 中嵌入 <canvas> 标签?