【发布时间】:2013-12-01 15:02:47
【问题描述】:
我正在使用 fs.writeFile 将多个文件写入一个目录。我想在回调中使用正在写入的文件的名称(例如打印“文件 x 已被写入”)。
如何获取正在写入的文件的名称 (x)?
由于 writeFile 是异步的,使用我传递给 writeFile 的文件名变量将不起作用。
谢谢!
【问题讨论】:
-
fs.writeFile的第一个参数是文件名,由你指定。为什么你不能在回调中控制台记录相同的字符串?
-
writeFile 的回调不会在 writeFile 被调用后直接执行,因为它是异步/非阻塞的。这意味着 writeFile 在文件被写入之前不会返回/执行其回调。这需要一段时间,并且由于 for 循环中的变量不断被覆盖,因此在写入文件完成时,它很可能处于不同的迭代中。 robertklep 下面的回答可能更好地解释了这一点。
标签: node.js