0

非同期ノード モジュールが必要とするイテレータ関数にパラメータを渡そうとしています。

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

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

私は常に ReferenceError: entry is not defined を取得します

event.folder パラメーターを関数に渡す方法についての手がかりはありますか?

4

1 に答える 1

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ますが、他の2つの引数は(おそらく)呼び出し時に使用できるため、3つの引数をカレーして、処理できる1つの引数関数を取得async.forEachしようとしています。(Coffee | Java)Scriptでこれを行う方法は他にもありますが、クロージャーを使用して手動で行うのがおそらく最も簡単です。mediaHandlerforEach

于 2012-12-29T22:27:08.843 に答える