另一个答案似乎表明这应该有用(所以不重复):
我试图能够在函数之外使用结果对象。我使用了回调,但是我仍然遇到问题。
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'
}]
答案 0 :(得分:-1)
使用
data = result;
或
data = data.concat(result);
concat
方法返回一个新数组。它不会修改调用它的数组。