【发布时间】:2014-12-27 08:25:48
【问题描述】:
我开始使用 OS.File 模块中的 OS.File.DirectoryIterator 编写一些脚本。我已经得到了以下代码块......有点。
我要做的是遍历给定的目录(它有 4 个子目录)并将子目录的名称放入一个数组中。问题是数组按预期填充,但在 promise 构造之外不可用。
诚然,我对 promises 缺乏经验,所以我确信问题在于我是如何构建它的(从 OS.File.DirectoryIterator 上的 MDN 页面提取)。所以我的问题是:为什么数组可以在 Promise 内访问,但不能在 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.
【问题讨论】:
标签: javascript arrays promise