在节点中,我要说我有以下代码: -
function readDirectory(callback){
fs.readdir('./', filterList);
}
function filterList(err,data){
//callback is undefined
if(err) callback(err);
callback();
}
readDirectory(function(){
console.log("Hi");
}
但如果我在readDirectory
本身内定义函数,则以下情况有效,因为它在同一范围内: -
function readDirectory(callback){
fs.readdir('./', function(err,data){
if(err) callback(err);
callback();
});
}
readDirectory(function(){
console.log("Hi");
}
所以我的问题是,有没有办法将readDirectory
的范围传递给外部定义的回调函数?
答案 0 :(得分:2)
所以我的问题是,有没有办法将readDirectory的范围传递给外部定义的回调函数?
不,JavaScript有词法范围。但是,您可以filterList
接受回调:
function readDirectory(callback){
fs.readdir('./', filterList(callback));
}
function filterList(callback) {
return function(err,data){
if(err) callback(err);
callback();
};
}