当我调用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());
};
答案 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);
});
};
网上有很多链接可以更详细地解释回调,你应该调查一下。但是,一旦掌握了这些,我建议阅读承诺,因为它们要好得多处理。