无法使用callback-javascript获取值



另一个答案似乎表明这应该有效(所以不是重复的):

我正在尝试在函数之外使用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方法返回一个新数组。它不会修改在其上调用它的数组。

最新更新