Javascript 如何使CoffeeScript闭包知道非局部变量?

Javascript 如何使CoffeeScript闭包知道非局部变量?,javascript,coffeescript,closures,Javascript,Coffeescript,Closures,这是一个使用express和async的CoffeeScript片段。如何使最终回调函数知道模板的值 app.get '/', (req, res) -> template = 'main' async.parallel([ (callback) -> db.collection1.find( {}, (err, data) -> if !err && data callback null, d

这是一个使用express和async的CoffeeScript片段。如何使最终回调函数知道模板的值

app.get '/', (req, res) -> template = 'main'
async.parallel([
  (callback) ->
    db.collection1.find(
      {},
      (err, data) ->
      if !err && data  
        callback null, data
      else
        callback null, null
    ),
  (callback) ->
    db.collection2.find(
      {},
      (err, data) ->
      if !err && data  
        callback null, data
      else
        callback null, null
    )
], (err, results) ->
  console.log template
)

将您的
async
块放入
app.get
回调(在
template='main'
下面)。像这样:

app.get '/', (req, res) -> 
  template = 'main'
  async.parallel([
    (callback) ->
      db.collection1.find(
        {},
        (err, data) ->
        if !err && data  
          callback null, data
        else
          callback null, null
      ),
    (callback) ->
      db.collection2.find(
        {},
        (err, data) ->
        if !err && data  
          callback null, data
        else
          callback null, null
      )
  ], (err, results) ->
    console.log template
  )

将您的
async
块放入
app.get
回调(在
template='main'
下面)。像这样:

app.get '/', (req, res) -> 
  template = 'main'
  async.parallel([
    (callback) ->
      db.collection1.find(
        {},
        (err, data) ->
        if !err && data  
          callback null, data
        else
          callback null, null
      ),
    (callback) ->
      db.collection2.find(
        {},
        (err, data) ->
        if !err && data  
          callback null, data
        else
          callback null, null
      )
  ], (err, results) ->
    console.log template
  )

它就是这样写的。尽管我试图修复,但格式设置没有正确通过。结果我的问题不同了。啊,深夜节目!它就是这样写的。尽管我试图修复,但格式设置没有正确通过。结果我的问题不同了。啊,深夜节目!