es6 の await と async の機能は次のとおりです: 1. async は、関数が非同期で実行され、Promise オブジェクトを返すことを宣言するために使用されます; 2. await は、非同期メソッドの完了を待機するために使用されます。 await は非同期関数でのみ使用できるため、非同期関数の戻り値を待つために使用されます。
このチュートリアルの動作環境: Windows 10 システム、ECMAScript バージョン 6.0、Dell G3 コンピューター。
async は関数が非同期であることを宣言するために使用され、await は非同期メソッドの実行が完了するのを待つために使用されます。
await は非同期関数内にのみ配置できます
Await の後には、新しい Promise を返して実行する関数が続きます。
await が発生すると、次のコードがブロックされ、非同期の外部の同期コードが最初に実行されます。
Promise を待っている場合は、Promise が完了するまで待機し、次に、解決パラメータを await として表現します。数式の演算結果。
式を待っている場合は、非同期の外部で同期コードを実行した後、戻って
async
async 関数 (含む) の実行を続けます。関数ステートメント、関数式、ラムダ式) は Promise オブジェクトを返します。
関数で直接値を返す場合、async は Promise.resolve() を通じてその直接値を Promise オブジェクトにカプセル化します。
非同期関数が値を返さない場合はどうすればよいでしょうか? Promise.resolve(unknown) を返すことは容易に想像できます。
Promise の特徴 - 待機がないため、await なしで非同期関数を実行すると、すぐに実行され、Promise オブジェクトが返され、後続のステートメントがブロックされることはありません。これは、Promise オブジェクトを返す通常の関数と変わりません。
await
一般的に、await は非同期関数が完了するのを待っていると考えられています。ただし、構文によれば、await は式を待っており、この式の評価結果は Promise オブジェクトまたはその他の値になります (つまり、特別な制限はありません)。
async 関数は Promise オブジェクトを返すため、await を使用して、async 関数の戻り値、つまり Promise の解決 (ここでは値) を待つことができます。
await は Promise オブジェクトを待機するために使用されるだけでなく、任意の式の結果を待機することもできるため、実際には await の後に通常の関数呼び出しや直接量を続けることができます。
待機対象が Promise オブジェクトでない場合、await 式の結果が待機対象になります。
await を使用する理由
非同期コードを同期コードに近づけるために
複数の Promise があり、すべての Promise が終了した後に結果を取得する方法
Promise.all() は Promise も返すため、await を使用して複数の Promise の値を取得したい場合は、Promise.all() を直接 await することができます。
[関連する推奨事項: JavaScript ビデオ チュートリアル 、webfrontend]
以上がes6 の await と async の機能は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。