适用于coffeescript中的array.forEach()的语法

我有一个下面的代码在coffeescriptrecursion列出目录(从JavaScript转换):

fs = require 'fs' walk = (dir, done) -> results = [] fs.readdir dir, (err, list) -> return done(err) if err pending = list.length return done(null, results) unless pending list.forEach (file) -> file = "#{dir}\\#{file}" fs.stat file, (err, stat) -> if stat and stat.isDirectory() walk file, (err, res) -> results = results.concat(res) done null, results unless --pending else results.push file done null, results unless --pending walk __dirname, (err, results) -> throw err if err console.log results 

正如你可以看到我使用list.forEach (file) ->它的工作。 但是,当我尝试用for file in listreplace它,然后它不能正常工作。 我做错了什么?

你正在循环定义一个函数。 JS中常见的陷阱 你需要closures迭代器。

for file in list then do (file) =>

    Interesting Posts