ホームページ  >  記事  >  ウェブフロントエンド  >  es6 の await と async の機能は何ですか?

es6 の await と async の機能は何ですか?

WBOY
WBOYオリジナル
2022-05-06 17:25:002673ブラウズ

es6 の await と async の機能は次のとおりです: 1. async は、関数が非同期で実行され、Promise オブジェクトを返すことを宣言するために使用されます; 2. await は、非同期メソッドの完了を待機するために使用されます。 await は非同期関数でのみ使用できるため、非同期関数の戻り値を待つために使用されます。

es6 の await と async の機能は何ですか?

このチュートリアルの動作環境: Windows 10 システム、ECMAScript バージョン 6.0、Dell G3 コンピューター。

es6 の await と async の機能とは何ですか

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。