JavaScript はシングルスレッド言語です。つまり、一度に 1 つのことしか実行できません。ただし、Web アプリケーションはサーバーからのデータの取得などのタスクを実行する必要があることが多く、これには時間がかかることがあります。 JavaScript が各タスクの完了を待ってから次に進む必要がある場合、Web アプリが遅くなり、応答しなくなる可能性があります。ここで、非同期 (非同期) JavaScript が登場します。
非同期 JavaScript を使用すると、コードでタスクを開始し、そのタスクが完了するまで待機している間に他のタスクに進むことができます。タスクが完了すると、コードが戻って結果を処理できます。これにより、アプリの高速性と応答性を維持することができます。
同期と非同期:
console.log("Start"); let result = someFunction(); // This might take a while console.log("End");
同期コードでは、someFunction() が完了した後にのみ「End」メッセージが記録されるため、処理が遅くなる可能性があります。
非同期: タスクは独立して開始および終了できるため、コードが待機中にスタックすることはありません。例えば:
console.log("Start"); setTimeout(() => { console.log("End"); }, 2000);
ここでは、「終了」メッセージが 2 秒後に記録されますが、その間、コードは他の処理を続けることができます。
コールバック:
function fetchData(callback) { setTimeout(() => { let data = "Some data"; callback(data); }, 2000); } fetchData((data) => { console.log(data); // This will log "Some data" after 2 seconds });
約束:
let promise = new Promise((resolve, reject) => { let success = true; if (success) { resolve("Task completed successfully!"); } else { reject("Task failed!"); } }); promise.then((message) => { console.log(message); }).catch((error) => { console.log(error); });
非同期/待機:
async function fetchData() { try { let data = await someAsyncTask(); console.log(data); } catch (error) { console.error("Error:", error); } }
非同期 JavaScript を理解することは、応答性の高い効率的な Web アプリケーションを構築するために不可欠です。非同期 JavaScript を理解すると、遅い操作の完了を待ってスタックすることなくコードがタスクを実行できるようになります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3