実際に書いてみる!Node.jsのasyncの使い方【初心者向け】

初心者向けにNode.jsでasyncの使い方について解説しています。非同期処理を行う流れについて理解できるはずです。同じ処理を行うpromiseとの違いについても説明し、実際にインストールして使ってみているので、参考にしてみてください。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,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つのメソッドについて説明しよう。

 

[PR] Node.jsで挫折しない学習方法を動画で公開中

async処理メソッドの代表例

waterfall

配列を使用して非同期処理を行います。

配列の順番に従って実行されます。

 

series

配列を使用して非同期処理を行います。

配列の順番に従って実行されます。

waterfallとの違いは、次の処理を行う場合にコールバック関数を呼び出して処理を続ける必要があります。

このコールバック関数に引数として渡した値が、処理の最後に配列にも順番に代入されます。

 

parallel

parallelは並行して処理されます。

つまり、seriesのように順番に次の関数が実行されません。

並行してコールバック関数を呼び出して処理を続け、その

このコールバック関数に引数として渡した値が、処理の最後に配列にも代入されます。

 

Node.jsでasyncを使う方法を解説しました。

非同期処理について理解しておきましょう。

Node.jsの学習サイトもまとめているので、合わせて参考にしてみてください。

 

田島悠介

waterfall・series・parallelそれぞれの特徴を解説したよ。

大石ゆかり

並行して処理を行いたい場合は、parallelを使用すればいいという感じですね。

田島悠介

他に非同期処理を行うパッケージとして、promiseというものもあるんだ。こちらも併せて覚えておこう。

大石ゆかり

了解です。ありがとうございました!

 

また、オンラインのプログラミングスクールTechAcademyでは、Node.jsオンライン講座を開催しています。

Node.jsを使ってWebアプリケーションを開発することができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。