LoginSignup
0
1

非同期処理と同期処理

Last updated at Posted at 2023-08-08

はじめに

フロントエンドで理解が必須の、非同期処理と同期処理について書いていきます。

非同期処理と同期処理の関係

同期処理

ある処理の完了を待たずに、別の処理から実行していく通信方法になります。
サンプルコードで解説します。

test.tsx
const testMethod = () => {
    console.log('1');
    setTimeout(() => {
        console.log('2')
    }, 1000);
    console.log("3");
}
testMethod();

出力結果は以下になります。

1
3
2

このように、時間のかかる処理を待たずに、別の処理を実行していくのが非同期処理となります。

同期処理

同期処理は、非同期処理の逆で、順番に処理を実行していく通信方法になります。
サンプルコードは以下です。
今回は、asyncとawaitを使って、同期処理を実現しています。

test.tsx
const testMethod = async () => {
    console.log("1");
    console.log("2");
    console.log("3");
}
testMethod();

実行結果は以下になります。

1
2
3

このように、同期処理は、上から順番に処理を行なっていきます。

使いこなすためのベストプラクティス

非同期関数:
非同期処理を行う関数は、必ず async キーワードを付けて定義し、await を使用して非同期操作の完了を待つようにします。これにより、コードの意図が明確になり、エラーハンドリングも容易になります。

Promiseとコールバック:
コールバックベースの非同期処理は、コードのネストが深くなる可能性があるため、可能な限り Promise を使用して処理をチェーンすることを推奨します。

非同期のネストを避ける:
非同期処理のネストを深くしないように注意し、必要に応じて Promise.all や async/await を使用して複数の非同期操作を同時に待機することで、コードの複雑さを抑えることができます。

エラーハンドリング:
非同期処理ではエラーハンドリングが重要です。try/catch ブロックを使用して非同期操作の中で発生するエラーを適切にキャッチし、処理するようにします。

パフォーマンスの最適化:
非同期処理の適切な活用により、アプリケーションのパフォーマンスを向上させることができます。ただし、過剰な非同期処理は逆にオーバーヘッドを引き起こす可能性があるため、バランスを保つことが重要です。

非同期処理と同期処理の組み合わせにより、アプリケーションの効率性とユーザーエクスペリエンスを向上させることができます。適切な場面で使い分けることで、柔軟で高性能なコードを実現できます。

最後に

他にも色々な記事を書いているので、よければ読んでいってください、、、
基本設計について
Vue.jsとNode.jsでチャットアプリを作った
Next.js×TypeScriptでTODOアプリを作成する

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1