该函数不返回正确的数组

时间:2014-06-25 08:05:59

标签: javascript arrays json node.js return

第一个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 {}

1 个答案:

答案 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;
}