gpt4 book ai didi

javascript - 无法访问函数外部的数组元素

转载 作者:搜寻专家 更新时间:2023-11-01 00:31:14 24 4
gpt4 key购买 nike

我正在尝试将名称与特定目录中所有文件的路径一起散列。散列后,我将散列保存到数组(hash_orig)中。这是我所做的。

var fs = require('fs');
var Hashes = require('jshashes');
var path = process.argv[2];
var path_elements = new Array();
var hash_orig = new Array();


fs.readdir(path, function(err, items) {
console.log('\nNumber of files in the directory: '+items.length);
console.log('Hashing algorithm: SHA1')
for (var i=0; i<items.length; i++) {
path_elements.push(path+"/"+items[i])
var SHA1 = new Hashes.SHA1().b64(path_elements[i])
console.log([i+1]+':\t'+items[i]+"\t" + SHA1)
hash_orig.push(SHA1);
}
});

console.log(hash_orig)

问题:

问题是,当我将散列插入 hash_orig 数组并尝试在函数 fs.readdir 之外访问它时,数组 hash_orig 为空。 (console.log(hash_orig))

我需要从外部访问它以便进一步执行一些比较操作以确定哈希是否已更改为验证文件名和路径的完整性。我做错了什么?谢谢。

最佳答案

fs.readdir 是一个异步函数。在到达console.log(hash_orig)的时候,还没有调用readdir的回调。将日志语句放在回调的末尾,您将看到结果。

关于javascript - 无法访问函数外部的数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33067035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com