2016-06-20 1 views
1

この違いは重要ですか?それは次のとおりです。イテレータv.s. iteratee

  • イテレータ=私はasyncのドキュメントと見て読んでいる

  • iterateeは、実際のデータ構造を=が反復されているデータ構造のセットの繰り返し処理のいくつかの抽象化その場所の "iteratee"の使用。さて、実際の反復はしないので、反復子は正しい名前ではありません。しかし、上記の "iteratee"の理解から、それは関数であってはなりません(iteratee =私の心の中のデータ構造 - もしあれば、反復子は反復を行う関数です)。

    asyncのiterateeに慣れていないなら、それは2つの引数、反復処理中のコレクションの次の値、エラー値と結果値をとる関数をとる関数です。あなたはiterateeで何か非同期を行い、エラーまたは結果を伴う第2の引数(関数(err、result))を呼び出します。

    (これは、イテレーションで非同期オペレーションを呼び出す結果を処理するために、何らかの操作(マップ、フィルタなど)にパラメータとして(イテレータから離れて)別のコールバックを提供します要素)。

    ちょうど好奇心:これの正しい名前は "iteratee"ですか?

  • 答えて

    2

    イテレータはiteratee(この場合はコールバック)を呼び出します。非同期では、ほとんどのイテレータが完了を示すためにコールバックを渡すので、iterateeをコールバックという名前にすると混乱します。

    ここでの背景については、async.js issue where this was discussedがあり、イテレータコールバックをlodashとunderscoreで指定する方法もあります。このunderscore threadは、3つのライブラリの変更の基礎となります。

    関連する問題