我正在使用CEF用Javascript构建本地桌面应用程序,并且我有API来从CEF访问文件系统。 我有一个场景,需要获取特定目录中所有文件的名称(可能存在目录树)。 我需要获得结果数组,我正在使用jQuery promises。 我不明白的是:何时解决承诺以获得最终结果数组?
/*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);
});
如果我做得不对,请建议其他技术:)