実際に書いてみる!Node.jsのasyncの使い方【初心者向け】
初心者向けにNode.jsでasyncの使い方について解説しています。非同期処理を行う流れについて理解できるはずです。同じ処理を行うpromiseとの違いについても説明し、実際にインストールして使ってみているので、参考にしてみてください。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Node.jsでasyncを使う方法を解説します。
非同期処理を行う上でpromiseとの違いについても理解しておくと良いでしょう。
なお本記事は、TechAcademyのNode.jsオンライン講座の内容をもとに作成しています。
今回はasyncというパッケージを使ってみよう。
田島メンター!asyncでは何ができるんですか〜?
asyncは非同期処理を行う際に使用するパッケージだよ。まずは非同期処理がどういうものかというところから見ていこう。
分かりました!
Node.jsのasyncとは
Node.jsのasyncは非同期処理を可読性の高いコードで実装できます。
非同期処理とは
非同期処理とはページが更新された際などに、更新前と更新後を比較して足りない部分だけをデータ通信する処理のことです。
この非同期処理の事をフロントエンド側の処理ではAjaxと呼ぶ事もあります。
Node.jsでも使用されているJavaScriptでは、非同期処理の際コールバック関数を使用します。しかし、処理が複雑になるに連れて、コールバック関数が入れ子になり、ソースコードを見た時に処理の内容が分かりづらくなります。
実務上でも、非同期処理実装時に、Node.jsのasyncを利用することで、コールバック関数のの書き方を明確にし、可読性と保守性を高めることが出来ます。
非同期処理実装方法としてのpromiseとasync
Node.jsの非同期処理にはpromiseを使用する方法もあります。
実は、promiseよりもasyncの方が簡潔に非同期処理実装が可能です。
しかし、asynicはInternet Explorer等、非対応のブラウザも存在するため、採用には実務上でもよく考える必要があります。
Node.jsでasyncを使う方法
asyncパッケージをインストールする方法
コマンド
npm install async
解説
npm install asyncでasyncパッケージをインストールします。
npmのインストール方法についての記事も必要であればチェックしておきましょう。
async処理の文法
ソースコード
async.メソッド名([ function(callback) { 処理内容 } });
解説
1行目のasync.メソッド名( [では、asyncのメソッド名を指定して処理方法を呼び出します。
2行目のfunction(callback) {では、callbackの部分の引数に基づいて処理を行います。
引数に関しての記事も参考にしてみてみてください。
3行目の処理内容で実際に処理を行います。
4行目で処理を終了します。
asyncのインストールと、基本の書き方になるよ。
この「メソッド名」の部分には何が入るんですか?
ここに書く内容によって、処理の方法が変わってくるんだ。ここではwaterfall・series・parallelという3つのメソッドについて説明しよう。
async処理メソッドの代表例
waterfall
配列を使用して非同期処理を行います。
配列の順番に従って実行されます。
series
配列を使用して非同期処理を行います。
配列の順番に従って実行されます。
waterfallとの違いは、次の処理を行う場合にコールバック関数を呼び出して処理を続ける必要があります。
このコールバック関数に引数として渡した値が、処理の最後に配列にも順番に代入されます。
parallel
parallelは並行して処理されます。
つまり、seriesのように順番に次の関数が実行されません。
並行してコールバック関数を呼び出して処理を続け、その
このコールバック関数に引数として渡した値が、処理の最後に配列にも代入されます。
Node.jsでasyncを使う方法を解説しました。
非同期処理について理解しておきましょう。
Node.jsの学習サイトもまとめているので、合わせて参考にしてみてください。
waterfall・series・parallelそれぞれの特徴を解説したよ。
並行して処理を行いたい場合は、parallelを使用すればいいという感じですね。
他に非同期処理を行うパッケージとして、promiseというものもあるんだ。こちらも併せて覚えておこう。
了解です。ありがとうございました!
また、オンラインのプログラミングスクールTechAcademyでは、Node.jsオンライン講座を開催しています。
Node.jsを使ってWebアプリケーションを開発することができます。
現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、習得することが可能です。