2章非同期プログラミング

「1章 イントロダクション」でNode.jsは並行処理を実現するために、従来一般的だったマルチスレッドではなくイベントループを用いていることを説明しました。マルチスレッドとイベントループの違いはコードにも明確に現れます。

イベントループで並行処理を実現するには、非同期プログラミングが不可欠です。非同期プログラミングでは制御フローが複雑になりやすく、それが原因でJavaScriptのコードはしばしば難解で冗長になってしまいます。幸いなことに、ES2015以降で導入された構文により、制御フローの複雑さは以前と比べて解消しやすいものとなっています。それらを駆使して簡潔に非同期プログラミングのコードを書けることは、Node.jsでのアプリケーション開発における重要なスキルです。

本章ではまず、マルチスレッドとイベントループの違いをより深く知り、なぜ後者による並行処理で非同期プログラミングが必要になるのかを学びます。次に、状況に応じて非同期プログラミングのコードをできるだけ簡潔に記述できるよう、非同期プログラミングのさまざまな実装パターンを習得します。

2.1 イベントループと非同期プログラミング

マルチスレッドとイベントループの違いについては、「1.1.1 イベントループによる並行処理」で触れました。ここではコードレベルの違いも含めた両者のさらに詳細な比較から、イベントループにおける非同期プログラミングの重要性を説明します。

2.1.1 マルチスレッドによる並行処理とその問題点

マルチスレッドによる並行処理のコードがどのようなものかを確認するため、1章で用いたコンビニの例を疑似コードで表現するところから始めます。そのあとで、マルチスレッドの問題点を見ていきます。 ...

Get ハンズオンNode.js now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.