Node.js asyncの有効な使い方




どうも高妻です。Twitterでもプログラミングのことや暗号通貨のことをつぶやいているのでよかったら覗きにきてください。  

シンプルなasync

ES7のasync/awaitではありません。2017年にもなってnpmのasyncの記事かよと思う方もいますが、4年間ほどソーシャルゲームの大規模開発で学んだasyncの使い方をまとめておきたいと思います。

まず簡単にasyncのメリットとデメリットを紹介しておきます。

メリット

  1. シンプルなAPI
  2. 並列処理と逐次処理を同じインターフェースで記述できる

デメリット

  1. 記述量が多くなる
  2. 並列処理のエラーハンドリング怪しい
  3. 今後ベースとなるPromise互換ではない

デメリットとして今後Node.jsではPromiseが主流になるのは確実なのでasyncはもう使われなくなることですね。けど、小さい処理のプログラムは今でも自分はasyncを使ってます。

asyncサンプルコード

逐次処理 waterfall

  • waterfall

waterfallの第一引数に関数を詰めた配列を渡すだけです。逐次処理は基本これで問題ないです。

並列処理 parallel

  • parallel

繰り返し処理 each, forEachOf

  • each(eachSeries)

eachは並列処理になるのでuserListの中は順不同になります。eachSeriesは配列の最初の要素から順番に処理されるので、一個ずつ処理した場合はeachSeriesを使いましょう。インターフェーは変わらないのでeachをeachSeriesに変更するだけで大丈夫です。

 

  • forEachOf(forEachOfSeries)

これはObjectを回すときに使用します。eachと同様、1個ずつ処理したい場合はforEachOfSeriesに変更するだけで大丈夫です。

まとめ

シンプルで使い方の簡単なasyncはどうでしたか?今後のメインストリームではなくなりますが、使い方が簡単なのでちょっとした処理で試してみてください。







コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です