我正在迭代一个包含文件名的数组.对于它们中的每一个,我调用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)
- })
- })