提前致谢。在尝试处理来自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);
});