在nodejs async中将参数传递给forEach Iterator

时间:2012-12-29 22:07:03

标签: javascript node.js coffeescript async.js

我正在尝试将参数传递给异步节点模块所需的迭代器函数。

async.forEach dbReply, mediaHandler(entry, event.folder, callback), (error) ->
   console.log error 

mediaHandler = (entry, folder, callback) ->
   console.log arguments

我经常得到ReferenceError:未定义条目

关于如何将event.folder参数传递给函数的任何线索?

1 个答案:

答案 0 :(得分:0)

听起来您希望mediaHandler函数返回迭代器函数:

mediaHandler = (folder, callback) ->
    (entry) ->
        # Do things with folder, callback, and entry.
        # folder and callback are available through the closure,
        # entry is supplied by forEach.

然后:

async.forEach dbReply, mediaHandler(event.folder, callback), (error) -> ...

entry参数在调用迭代器时由forEach提供,但当您调用async.forEach时,其他两个参数(可能)可用,因此您正在尝试咖喱一个三个参数mediaHandler来获得forEach可以处理的一个参数函数;还有其他方法可以在(Coffee | Java)脚本中执行此操作,但使用闭包手动执行可能是最简单的。