Javascript 节点原型和异步
调用log()时,如何在read()中返回异步函数的值?我知道代码可能不是100%正确,但我希望你能理解。我在谷歌上搜索了一下,但还是有点困惑。希望有人能帮我Javascript 节点原型和异步,javascript,node.js,asynchronous,prototype,Javascript,Node.js,Asynchronous,Prototype,调用log()时,如何在read()中返回异步函数的值?我知道代码可能不是100%正确,但我希望你能理解。我在谷歌上搜索了一下,但还是有点困惑。希望有人能帮我 function Whatever(directory) { this.source = 'someDir'; } Whatever.prototype.read = function (dir) { dir = dir || this.source; recursive(dir, ['.*'], function (er
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());
};
您可以向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);
});
};
网上有很多详细解释回调的链接,您应该对此进行调查。不过,一旦你掌握了这些,我建议你阅读一下承诺,因为它们更容易处理。谢谢,马特。这正是我想要的。我肯定有一些阅读要做。糟糕的模式会抛出这样的错误,无处捕捉它。使用承诺