JavaScript の非同期では、await により、Promise を操作するための、より読みやすく「クリーンな」方法が提供されます。 (約束についてはここで読むことができます)。
まず構文を理解しましょう。
async キーワードがあります。関数が非同期であると宣言すると、この関数が常に Promise を返すことがわかります。値を直接返した場合でも、JavaScript はそれを自動的に Promise でラップします。
まず、await キーワードを使用したい場合は、非同期関数内でのみ使用できることを知っておく必要があります。
この await キーワードは、Promise が解決されるか拒否されるまで、非同期関数の実行を一時停止します。
async/await の非常に単純な例を見てみましょう。その後、完全な Promise アプローチ (async/await なし) と async/await アプローチを比較する大きな例を使用します。
それを壊しましょう:
async/await の基本を理解したので、さらに深く掘り下げて、Promise を使用した別の例を見てみましょう。
3 つの関数があり、各関数は Promise を返します:
(これらの機能の説明はここにあります)
これで、than() と catch() を使用してこれらの関数を呼び出すことができます。
このコードは、JavaScript の Promise チェーンの例です。ここでは、非同期操作 (データのフェッチなど) が順番に実行され、各ステップは前のステップの結果に依存します。
getOrders(user.id) が解決されると、orders 配列が次の .then() 内のコールバック関数に渡されます。
注文はコンソールに記録されます。
次に、getOrderDetails(orders[1]) が呼び出され、orders 配列の 2 番目の注文が取得されます (存在すると仮定します)。
この関数は、注文の詳細が取得されたときに解決される promise を返します。
getOrderDetails() からの Promise が返されるため、次の .then() はこの Promise が解決されるまで待機します。
結果:
このコードは、Promise Chaining アプローチと比較して、JavaScript で async/await を使用して非同期操作をより読みやすく処理する方法の例です。
説明:
1.async 関数 asyncAwaitExample():
4.catch (エラー) { console.log("エラーは:", error); }:
結果:
1.可読性: 非同期コードは同期コードのように見えるため、.then() ブロックをネストしたり、コールバック地獄に対処したりする必要性が減ります。
2.エラー処理: 単純な try-catch ブロックを使用すると、Promise で .catch() を使用するよりも簡単な方法でエラーを処理できます。
3.保守性: ロジックが複雑になるにつれて、Promise チェーンよりも async/await を使用した方が追跡と保守が容易になります。
以上が非同期、JavaScript で待機の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。