Ich habe einen Ordner von JSON-Dateien auf dem Dateisystem. Jetzt versuche ich, jede JSON-Datei in ein Objekt zu laden, das gut funktioniert. Problem beginnt, wenn ich versuche, jedes Objekt in ein Array zu schieben. Meine loadJSONFolderFiles() gibt nur ein Array von Versprechen zurück.Laden jeder Datei eines Ordners als JSON-Array
function loadJSONFolderFiles(p_path) {
var deferred = Q.defer();
var subfiles = [];
fs.readdir(p_path, function (err, files) {
if (err) {
return rxError("internal", 2002, "could not read folder");
}
files.forEach(function (subfile) {
var deferredLink = Q.defer();
var folderFilePath = p_path + "/" + subfile;
console.log("accessing " + folderFilePath);
// loadJSONFile() tested and works fine
loadJSONFile(folderFilePath).then(function (p_file) {
console.log("adding file " + folderFilePath);
deferredLink.resolve(p_file);
});
subfiles.push(deferredLink.promise);
});
deferred.resolve(subfiles);
});
return deferred.promise;
}
Mögliche Duplikat [Promises mit fs und drossel] (http: // stackoverflow.com/questions/19429193/promises-with-fs-and-bluebird) –