无法通过回调获得价值 - javascript

时间:2016-04-09 21:41:30

标签: 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'
}]

1 个答案:

答案 0 :(得分:-1)

使用

data = result;

data = data.concat(result);

concat方法返回一个新数组。它不会修改调用它的数组。