另一个答案似乎表明这应该有效(所以不是重复的):
我正在尝试在函数之外使用result对象。我已经使用了回调,但是我仍然有问题。
exports.getArray = function(query, callback) {
connection.query('SELECT ' + query + ' FROM table', function(err, result) {
if (!err) {
var array = [];
for (var i = 0; i < result.length; i++) {
array.push({
id: result[i].id,
});
}
callback(array);
console.log('Retrieved Data');
} else
console.log('Error while retrieving data.');
});
}
在另一个文件中
var data = [];
database.getArray('*', function(result) {
// console.log(result); //works
data.concat(result); //need the result value
});
console.log(data); // Outputs []
日志:
[{
id: 71,
author: 'catnip'
}, {
id: 78,
author: 'cup49'
}]
使用
data = result;
或
data = data.concat(result);
concat
方法返回一个新数组。它不会修改在其上调用它的数组。