Javascript Node.js React プログラミング 未分類

Node.js 同期処理と非同期処理【Node.js入門#2】

 

みやちゃ

 

皆さんこんにちは、みやちゃです!

物理とプログラミングについて解説しています!

こちらの記事で、Railsのアプリケーション開発からRspecのテスト、herokuにデプロイまで解説しています!

今回は、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の同期処理と非同期処理について解説しました。

 

みやちゃ

 

ここまでご覧いただきありがとうございます!

© 2024 とあるエンジニアの備忘録ブログ Powered by AFFINGER5