我正在迭代一个包含文件名的数组.对于它们中的每一个,我调用readFile().当调用相应的回调时,我希望检索传递给readFile()的文件名作为参数.可以吗?
附上一个剪切代码,以更好地解释我的意图.
var fs = require("fs"); var files = ["first.txt","second.txt"]; for (var index in files) { fs.readFile(files[index],function(err,data) { //var filename = files[index]; // If I am not mistaken,readFile() is asynchronous. Hence,when its // callback is invoked,files[index] may correspond to a different file. // (the index had a progression). }); }
解决方法
您也可以使用forEach而不是for循环:
files.forEach(function (file){ fs.readFile(file,function (err,data){ console.log("Reading %s...",file) }) })