Я новичок в Javascript, и я пытался сделать функцию, чтобы вернуть массив itens, который я получил из своей БД. Сначала я попытался это:Область Javascript. Как получить информацию из функции обратного вызова? Node-mysql
function getItens(userId){
var arr = new Array;
var result;
var connection = mysql.createConnection({
host : 'localhost',
user : 'XXXXXX',
password : 'XXXXXX',
database : 'XXXXXX',
});
connection.connect();
connection.query('SELECT * from itens where userId = '+ userId function(err, rows, fields){
if (err) throw err;
arr = rows.slice()
});
return arr;
connection.end();
}
Тогда я понял, что проблема существует сфера, и после некоторых исследований я пытался подражать статической переменной, как это:
function getItens(userId){
(function(){
var resultado;
Result = function(valor) { resultado = valor; };
Result.prototype.getResultado = function(){return resultado};
Result.prototype.setResultado = function (valor){ resultado = valor; };
})();
var ar = new Result([]);
var connection = mysql.createConnection({
host : 'localhost',
user : 'XXXXXX',
password : 'XXXXXX',
database : 'XXXXXX',
});
connection.connect();
connection.query('SELECT * from itens where userId = '+ userId , function(err, rows, fields){
if (err) throw err;
ar.setResultado(rows.slice());
});
return ar.getResultado();
connection.end();
}
Но это не сработало, Что я делаю не так?
возможно дубликат [Variable не получить возвращается из функции AJAX] (http://stackoverflow.com/questions/12475269/variable-doesnt-get-returned-from-ajax-function) –