我开始使用OS.File模块中的OS.File.DirectoryIterator执行一些脚本。我已经得到了以下代码块的工作...有点。从JavaScript中返回数组OS.File.DirectoryIterator
我想要做的是遍历给定的目录(其中有4个子目录),并将子目录的名称放入数组中。挂断是数组按预期填充,但在promise构造外不可用。
不可否认,我对承诺没有经验,所以我确信问题在于我如何构建它(它从OS.File.DirectoryIterator上的MDN页面解除)。所以我的问题是:为什么数组可以在promise中访问,但不在外?
var iterator = new OS.File.DirectoryIterator(PathToDir);
var subDirNames = [];
var promise = iterator.forEach(
function(entry) {
subDirNames.push(entry.name);
}
);
promise.then(
function(success) {
iterator.close();
console.log("--> "+subDirNames[1]); \\Array element 1 display in console fine.
return subDirNames;
},
function(failure) {
console.log("--> Error: "+failure);
}
);
console.log("--> "+subDirNames[1]); \\Array element 1 displays as undefined.
见https://developer.mozilla.org/en-US/docs/JavaScript_OS.File/OS.File_for_the_main_thread – guest271314