节点原型和异步

时间:2015-10-11 00:48:33

标签: javascript node.js asynchronous prototype

当我调用log()时,如何在read()中返回异步函数的值?我知道代码可能不是100%正确,但我希望你能得到这个想法。我用Google搜索,但仍然有点困惑。希望有人可以帮助我。

function Whatever(directory) {
  this.source = 'someDir';
}

Whatever.prototype.read = function (dir) {
  dir = dir || this.source;

  recursive(dir, ['.*'], function (err, files) {
    if (err) throw err;
    return files;
  });

};

Whatever.prototype.log = function() {

  console.log(this.read());

};

1 个答案:

答案 0 :(得分:1)

你可以向read函数添加一个回调,就像递归函数一样,例如:

Whatever.prototype.read = function (dir, callback) {
    dir = dir || this.source;
    recursive(dir, ['.*'], callback);
};

然后将错误检查和用法放在日志函数中:

Whatever.prototype.log = function() {
    this.read(function(err, files){
        if(err){ throw err; }
        console.log(files);
    });
};

网上有很多链接可以更详细地解释回调,你应该调查一下。但是,一旦掌握了这些,我建议阅读承诺,因为它们要好得多处理。