みやちゃ
今回は、Node.js入門の第2弾です!
非同期処理について解説していきます。
- 同期処理と非同期処理
同期処理と非同期処理について理解することができます!
目次
非同期処理
非同期処理とは、実行中のタスクがあるときでも、他のタスクを実行することができる仕組みのことを言います。
例えば、ユーザーが1つのタスクを実行した時に、実行処理が完了するまで待つ必要がなく、他のタスクを実行しながら、実行処理が完了するのを待つことができるのです。
そのため、ユーザーにとってストレスがなく、使いやすい仕組みなのです。
Node.jsと非同期処理
Node.jsは、アプリケーションのパフォーマンスを優先し、非同期処理を標準APIとして提供しています。
そのため、ファイルの読み込みのような時間のかかる実行処理は、非同期処理で行うように設計されています。
またNode.jsは、大量のアクセスに強いことで有名です。
非同期処理によって、パフォーマンスを向上させ、高い性能を発揮しているのです。
同期処理と非同期処理
それでは実際にコードを書いて、同期処理と非同期処理を比較してみましょう。
プログラムの内容としては、以下のような内容の「miyacha.txt」というファイルを読み込み、データを出力するものです。
Node.js
同期処理
非同期処理
同期処理
まず、同期処理でファイルを読み込む場合のコードを見てみましょう。
以下のコードを見てください。
const fs = require('fs')
const data = fs.readFileSync('miyacha.txt', 'utf-8')
console.log(data)
1行目では、「fs」モジュールを読み込んでいます。
2行目でreadFileSync()関数を用いて、ファイルを読み込みます。
非同期処理
続いて非同期処理の場合も見てみましょう。
以下のコードを見てください。
const fs = require('fs')
fs.readFile('miyacha.txt', 'utf-8', readHandler)
function readHandler(err, data){
console.log(data)
}
先ほどとほとんど同じ内容ですが、同期処理に比べて、少し長くなっています。
非同期処理では、ファイルの読み込みが終わった際に実行するfunctionを記述する必要があるためです。
2行目のreadFile()関数でファイルを読み込んでいますが、同時に、ファイルを読み込み終わった時に実行する関数「readHandler」も引数として渡しています。
そして3行目以降にreadHandlerの関数を定義しています。
まとめ
いかがでしたでしょうか?
今回は、Node.jsの同期処理と非同期処理について解説しました。
みやちゃ
ここまでご覧いただきありがとうございます!