【发布时间】:2015-04-07 21:38:59
【问题描述】:
我有下面的代码 sn-p,它实际上是一个对 SQL 数据库进行查询的函数(为此使用了 tedious)。 我想要的只是从数据库中获取数据并在网页上使用它们。 问题是:在 request.on()... 我正在调用 date.setMyData() 函数。仍然在 request.on('row', function(columns)....如果调用 console.log(date.getMyData()) 它成功返回我的数据。
但是,如果尝试在 request.on('row', function(columns) 之外调用 date.getMyData ...我得到 NULL ... 这里有什么我遗漏的吗?
var date = new DBData();
function executeStatement() {
request = new Request(queryString, function(err, rowCount) {
if (err) {
console.log(err);
} else {
console.log(rowCount + ' rows');
}
connection.close();
});
request.on('row', function(columns) {
columns.forEach(function(column) {
if (column.value === null) {
console.log('NULL');
} else {
date.setMyData(columns);
//WHY THIS CODE RETURNS MY DATA?
console.log(date.getMyData());
}
});
});
request.on('done', function(rowCount, more) {
console.log(rowCount + ' rows returned');
});
connection.execSql(request);
}
function DBData(){
var myData = null;
this.setMyData = function(obiect){
myData = obiect;
};
this.getMyData = function(){
return myData;
};
};
console.log(date.getMyData()); //WHY I GET 'NULL' HERE?
【问题讨论】:
-
如果
Request是异步的,它将在自己的时间内完成,在console.log()之后调用setMyData()。相关:Why is my variable unaltered after I modify it inside of a function?
标签: javascript node.js object null