提前致谢。在尝试处理来自MySQL结果的所有行之后,我正在尝试执行某些操作。我尝试了Promises,但是没有用。
有4600行,但我刚得到[]。我猜我的问题是NodeJS异步。
这是我的代码:

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);
    });

最佳答案

仅在返回所有行并获得Promise事件后,才需要解析end。这未经测试,但是应该可以正常工作:

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);
});

10-06 02:30