Я создаю собственное настольное приложение в javascript, используя CEF, и у меня есть API для доступа к файловой системе из CEF. У меня есть senario, , в котором мне нужно получить имена всех файлов (могут быть деревья каталогов) в пределах определенного каталога. Мне нужно получить массив результатов, я использую обещания jquery. Я не понимаю: когда я разрешу обещание получить окончательный массив результатов?Асинхронный вызов внутри рекурсивной функции
/*read all directories under this and get path*/
var result = [];
function _processEntries(dirPath) {
var dirEntry = new NativeFileSystem.DirectoryEntry(dirPath), deferred = new $.Deferred();
/*async call*/
dirEntry.createReader().readEntries(
function (entries) {
for (var i = 0; i < entries.length; i++) {
if (entries[i].isDirectory) {
_processEntries(entries[i].fullPath).done(function() {
deferred.resolve(result);
});
} else {
result.push(entries[i].fullPath);
}
}
},
function (error) {
console.log("Failed while reading dir:", error);
}
);
return deferred.promise();
}
// Вызов функции
_processEntries("C:/Users/abc").done(function(result){
console.log("FILES ARRAY:",result);
});
Пожалуйста, предложите любую другую технику, если я делаю это неправильно :)
Старайтесь не использовать JQuery обещает, когда вы можете легко использовать гораздо лучшие библиотеки обещание. – Bergi