2013への参加記事です。queue()自身は直接D3に関連しているわけではありません。このライブラリは、D3の作者マイク・ボストック氏作成のライブラリである。D3サンプルによく用いられている(※)。したがって、少なくともD3では安心して利用することができる(D3プログラミングで充分にテストされている)。3点から、D3プログラマが覚えておいて損はないライブラリだと思います。ダウンロードできます。another)非同期ヘルパーライブラリである。最小バージョンと理解してもらえば良いだろう。コードジェネレータを省いたものと理解してもらっても良い。ファイルを読み込むことがよくあります。外部ファイルの読み込みは当然非同期処理になるのですが、読み込みファイルが多くなるにつれコールバック関数のネストがどんどん深くなり、そこにエラー処理や終了処理、あるいは読み込み負荷軽減のための遅延処理(タイマー処理)が加わるとコードの可読性がどんどん悪くなります(いわゆるコールバック地獄)。非同期ヘルパーライブラリとはこうしたコードをシンプルに書くためのライブラリです。その目的は、一にも二にも、コードの可読性を高める(つまりデバグ・メンテを容易にする)ことです。内部的には深いネスト処理やタイマー処理と同等のことをしているのですが、非同期ヘルパーライブラリを使うことで、出来上がったコードが、プログラマの自然な思考に沿ったコードとなるのです。実際には内部で非同期処理が行われていることはしっかり意識しておく必要があります(さもないと思わぬ罠に陥ります)。シンプルにしたもの、と理解すれば良いでしょう。とっつきが悪い(覚えるのに若干骨が折れる)ライブラリですが、queue()は最小限の機能にしぼってあるだけあって、シンプルですぐに覚えられます。プログラマの遭遇するほとんどの必要条件を満たしているはずです。具体的に例を見てみましょう(※)。次のコードはマイク氏のサンプル「Choropleth(コロプレス)」の一部です。元ページには実際の画面とソースコード全体が掲載されていますので、ぜひ別窓で開きながらご確認ください。...}このコードの意味は「jsonファイルとtsv(タブ区切り)ファイルを一つずつ読み込み、両方の読み込みが完了した時点で関数readyを呼ぶ」です。queueライブラリを読み込み、次にコード内で、queue()によりキューオブジェクトを生成します(※2)。使ってタスクを登録して行きます(※3)。オブジェクトのリストに非同期処理を追加することを意味しています。実行キューにいったん登録し、条件が整うまで実行を先延ばしする、という意味です。ネットワークに負荷をかけるのを避けるのが目的です。ファイルサイズ・ファイル数が小さいときは即時実行しても問題はありません。使う価値(可読性の向上)は充分あります。“unemplyment.tsv”)。後者では三つ目の引数として無名関数をコールバック関数に指定してます。ここではqueue()に引数(parallerism=同時実行数)を指定していないため、登録したタスクはいずれも即座に実行されます。)が実行されます(※4)。好きな名前をつけてかまいません。何層にもネストしたコードを書くのに比べ、自然な思考の流れに沿った分かりやすいコードになることが理解いただけたと思います。