第一个console.log
正确显示数组,但是当我从外面调用它时,会显示一对空的花括号。
var tofind = function (){
var userss = [];
user.find(function (err, people) {
if(err) {
console.log(err);
return;
}
console.log("asad");
var parsed = JSON.parse(JSON.stringify(people));
userss = parsed;
console.log(userss);
//displays correctly
return userss;
});
}
console.log(new tofind());
//displays empty pair of curly braces {}
答案 0 :(得分:0)
您的tofind
函数没有明确返回任何内容。这意味着您在控制台中输出的内容是tofind
本身的实例。
您可以将公共函数添加到实例范围:
var tofind = function() {
var userss = [];
...
this.getUserss = function() { return userss };
}
console.log( (new tofind()).getUserss() );
或者在tofind函数结束时返回用户。
var tofind = function() {
var userss = [];
...
return userss;
}