JavaScript の非同期の性質は、ユーザーフレンドリーで応答性が高く、効率的なアプリを作成するために不可欠です。ナビゲーションを成功させるには、コールバック、Promise、async/await などの非同期プログラミングの基本的な考え方を理解することが重要です。このマニュアルでは、これらのアイデアを詳細に分析し、その用途、利点、欠点を検討します。
同期プログラミング:
同期コードの例:
function task1() { console.log("Task 1 started"); for (let i = 0; i < 1e9; i++); // Simulating a long task console.log("Task 1 completed"); } function task2() { console.log("Task 2 started"); for (let i = 0; i < 1e9; i++); // Simulating a long task console.log("Task 2 completed"); } task1(); // Executes first task2(); // Executes after task1 is completed
非同期プログラミング:
定義: コールバックは、別の関数に引数として渡され、タスクの完了後に実行される関数です。
例:
function fetchData(callback) { console.log("Fetching data..."); setTimeout(() => { const data = "Data received"; // Simulate fetched data callback(data); // Execute the callback with the data }, 2000); } fetchData((data) => { console.log(data); // Logs after data is fetched });
説明:
コールバックに関する問題:
定義: Promise は、非同期操作の最終的な完了 (または失敗) とその結果の値を表すオブジェクトです。
メリット:
例:
function fetchData() { return new Promise((resolve, reject) => { console.log("Fetching data..."); setTimeout(() => { const data = "Data received"; resolve(data); // Resolve the promise with data }, 2000); }); } fetchData() .then(data => { console.log(data); // Logs after promise is resolved }) .catch(error => { console.error(error); // Handles errors });
説明:
定義: Async/await は Promise の上に構築された糖衣構文であり、同期コードのように見え、動作する非同期コードを作成できます。
メリット:
例:
function task1() { console.log("Task 1 started"); for (let i = 0; i < 1e9; i++); // Simulating a long task console.log("Task 1 completed"); } function task2() { console.log("Task 2 started"); for (let i = 0; i < 1e9; i++); // Simulating a long task console.log("Task 2 completed"); } task1(); // Executes first task2(); // Executes after task1 is completed
説明:
同期と非同期:
コールバック:
約束:
非同期/待機:
これらの戦略を理解して活用することで、効果的で使いやすい JavaScript アプリケーションを開発できます。簡単なタスクを管理する場合でも、複雑なワークフローを作成する場合でも、熟練した JavaScript 開発者になるには、非同期プログラミングを学習することが不可欠です。
Github Linkedin スレッドでフォローしてください
以上がJavaScript 非同期プログラミングの理解: コールバック、Promise、および Async/Awaitの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。