Другой ответ, кажется, предполагают, что это должно работать (так не дубликат):не может получить значение с обратным вызовом - Javascript
Я пытаюсь быть в состоянии использовать результирующий объект вне этой функции. Я использовал обратный вызов, однако у меня все еще возникают проблемы.
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'
}]
Строка, которая говорит 'console.log (данные); // Выходы [] 'запускаются немедленно, он не ждет, когда функция обратного вызова –
изменит этот' data.concat (result); 'to' data = result; ' –
_" Другой ответ, похоже, предполагает, что это должно работать (так не дубликат) _ _ - о каком другом ответе вы говорите? – Xufox