ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript の基礎: 非同期プログラミングの詳細

JavaScript の基礎: 非同期プログラミングの詳細

Susan Sarandon
リリース: 2024-11-13 04:58:02
オリジナル
878 人が閲覧しました

JavaScript Fundamentals: A Deep Dive into Asynchronous Programming

非同期プログラミングは、JavaScript でファイル読み取り、ネットワーク リクエスト、タイマーなどの操作を処理するために不可欠です。非同期プログラミングを行わないと、プログラムの実行がブロックされてしまいます。非同期コードの操作方法を理解することは、効率的でブロッキングのない Web アプリケーションを構築するために非常に重要です。

  1. 非同期プログラミングとは何ですか?
    同期プログラミングでは、各演算が順番に実行されます。ただし、非同期プログラミングでは、特定の操作 (API からのデータのフェッチなど) をメイン プログラム フローから独立して実行できるため、操作が完了するまで待機している間に他のタスクを実行できます。

  2. コールバック

コールバックは、引数として別の関数に渡される関数であり、タスクの完了後に実行されます。たとえば、イベント処理または setTimeout 関数では、操作の終了時に実行されるコールバックを渡します。

setTimeout(() => {
  console.log("This runs after 2 seconds");
}, 2000);

ログイン後にコピー
  1. 約束 Promise は、将来利用可能になる値を表します。これらは、非同期操作をコールバックよりも適切に処理するために、特にエラー処理に使用されます。

Promise は、保留中、解決済み (履行済み)、または拒否済みの 3 つの状態のいずれかになります。 Promise は、結果とエラーを処理するために .then() と .catch() を使用して連鎖させることができます。

let promise = new Promise((resolve, reject) => {
  let success = true;
  success ? resolve("Data fetched successfully!") : reject("Fetch failed");
});

promise
  .then(result => console.log(result))
  .catch(error => console.log(error));
ログイン後にコピー
  1. 非同期/待機 ES2017 で導入された async と await は、非同期コードを操作するためのよりクリーンで読みやすい方法を提供します。 async は関数に Promise を返させ、await は Promise が解決または拒否されるまで実行を一時停止します。
async function fetchData() {
  try {
    let response = await fetch("https://api.example.com");
    let data = await response.json();
    console.log(data);
  } catch (error) {
    console.error(error);
  }
}
ログイン後にコピー
  1. エラーの処理 非同期コードでは、エラーは多くの場合、try...catch (async/await の場合) または .catch() (Promise の場合) で処理されます。エラーを適切に処理することは、アプリケーションが障害から確実に回復できるようにするために不可欠です。

結論
JavaScript で非同期プログラミングを習得することは、効率的なアプリケーションを構築するための鍵です。コールバック、Promise、async/await を理解することで、メインの実行スレッドをブロックすることなく、API 呼び出しやバックグラウンド プロセスなどの複雑なタスクを処理できます。

以上がJavaScript の基礎: 非同期プログラミングの詳細の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート