【发布时间】:2012-07-24 10:26:23
【问题描述】:
如何从回调中访问fs.read,fs.stat... 方法的参数?
例如,如果我想根据文件大小处理文件 以下 (coffeeScript) 代码 sn -p
#assuming test1.txt exists
filename = "./test1.txt"
fs.stat filename, (err, stats) ->
data = filename:filename,size:stats.size
console.log data
#further process filename based on size
filename = "./test2.txt"
打印
{ filename: './test2.txt', size: 5 }
因为文件名设置为“./test2.txt”。如果我在fs.stat 回调中使用文件名变量处理/读取文件,它将使用test2.txt,这不是预期的。
我希望在回调中看到的是
{ filename: './test1.txt', size: 5 }
【问题讨论】:
-
Node.js 是异步的。将文件名 var 设置为
./test2.txt后调用回调。 -
@RyanOlds 我知道为什么它会打印 test2.txt,但我想知道是否有任何方法可以从回调中访问
"./test1.txt" -
将
filename和fs.stat调用包装在一个函数中并利用函数范围。
标签: node.js asynccallback fs