问题
I believe this is a problem with it being async, but I do not know the solution.
PagesController.buy = function() {
var table="";
Selling.find({}, function(err, res) {
for (var i in res) {
console.log(res[i].addr);
table = table + "res[i].addr";
}
});
this.table = table;
console.log(table);
this.render();
}
My issue is that this.table=table
is returning undefined if I try access it outside of the function, and I cannot figure out how to display the table on the page.
回答1:
The problem is the Selling.find is asynchronous and likely isn't complete by the time the this.table = table is executed. Try something like the following.
PagesController.buy = function() {
var that = this;
Selling.find({}, function(err, res) {
var table = '';
for (var i in res) {
console.log(res[i].addr);
table = table + res[i].addr;
}
that.table = table;
console.log(table);
that.render();
});
}
That will guarantee that table isn't used until after the results have been fetched and table has been populated.
来源:https://stackoverflow.com/questions/16471548/nodejs-cant-access-variable-inside-callback