JavaScript の非同期操作: Promise と async/await の詳細な説明
Promise と async/await は、JavaScript が非同期操作を処理する 2 つの方法です。この記事では、それらの違い、利点、適用可能なシナリオについて説明します。
約束
const fetchData = () => { return new Promise((resolve, reject) => { setTimeout(() => { resolve("数据已获取"); }, 1000); }); }; fetchData() .then((data) => console.log(data)) .catch((error) => console.error(error));
.then()
を使用します。 .catch()
を使用します。 .then()
を使用して、複数の非同期操作を連鎖的に呼び出すことができます。 .then()
連鎖呼び出しはネストされたコールバックよりもクリーンです)。 .catch()
を使用します。 .then()
呼び出しを連鎖させる場合、エラー処理に特別な注意が必要になる場合があります。 非同期/待機
const fetchData = async () => { try { const data = await new Promise((resolve, reject) => { setTimeout(() => { resolve("数据已获取"); }, 1000); }); console.log(data); } catch (error) { console.error(error); } }; fetchData();
async
キーワードを使用して、Promise を返す関数を宣言します。 await
を使用して、Promise が完了するまで実行を一時停止します。 try...catch
を使用します。 .then()
チェーン呼び出しと比較して、構文が明確で理解しやすいです。 try...catch
は集中エラー処理に使用されます。 async
で宣言された関数内で使用する必要があります。 いつ使用するか
約束:
非同期/待機:
組み合わせて使う
高度なユースケースでは、Async/await を Promise と組み合わせることができます:
const fetchData = () => { return new Promise((resolve, reject) => { setTimeout(() => resolve("数据已获取"), 1000); }); }; const processData = async () => { try { const data = await fetchData(); console.log(data); } catch (error) { console.error(error); } }; processData();
以上がasync / await と Promise の使用の違いは?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。