提前致谢。在处理MySQL结果的所有行之后,我正在尝试做某事。我尝试过Promises,但它没有用。 Theres 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);
});
答案 0 :(得分:1)
只有在返回所有行并且您收到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);
});