var fs=require('fs');
var path=require('path');
module.exports.getFiles=function(filepath,callback) {
var files=[];
fs.exists(filepath,function(exists){
if(exists){
fs.stat(filepath,function(error,stats){
if(error){}
else{
if(stats.isDirectory()){
fs.readdir(filepath,function(error,filelist){
if(error){}
else{
filelist.forEach(function(file){
var obj={};
fs.stat(path.join(filepath,file),function(error,stats){
if(error){}
else{
if(stats.isDirectory()){
obj.type='directory';
}
else{
obj.type='file';
}
obj.name=file
console.log(obj);
files.push(obj);
}
});
});
console.log("callback")
callback(files); //problem is here
}
});
}
}
});
}
});
}
Я написал функцию, которая получает список файлов с данного пути. Я посылаю обратный вызов этой функции. функция обратного вызова отображает веб-страницу ответа. Но Callback выполняется до завершения всей функции. из-за этого я получил пустой ответ на веб-странице. есть ли способ решить это.Node.js Обратный вызов, выполненный до завершения всей функции
Этот код меня пугает. используйте https://github.com/caolan/async – deltree
Это законный вопрос. Почему голосуют? – Nocturno
Я смущен незримыми голосами. который я должен сейчас рассмотреть? –