繁体   English   中英

如何在coffeescript的for循环内使用异步序列?

[英]how to use async series inside a for loop in coffeescript?

我在coffeescript中使用caolan的异步lib。 我的任务在for循环内,并且在循环完全执行后,我需要运行回调函数。

这就是我现在所拥有的。 我不希望最终的回调每次都在for循环内运行。 我怎样才能做到这一点?

 for key, value of settings
  async.series([
    ((callback) ->
      getSetting key, (value) ->
        #do something and create object settingValues
      callback(null, settingValues)
    )
  ],
  #final callback which I want to run after the entire for loop is completed.  
  (err, results) ->
    someFunction results
  )

如果您真的想使用async.series for循环来构造函数数组,则传递该数组

 arr = []

 for key, value of settings
   arr.push (callback) ->
     getSetting key, (value) -> 
       callback(null, settingValues)


 async.series arr, (err, results) -> someFunction results

或者,您可以只使用异步来迭代

async.map Object.keys(settings), (key, callback) ->
    # if you need 'value' in here, use settings[key]
    getSetting key, (value) ->
      callback(null, settingValues)
, (err, results) -> someFunction results

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM