JavaScript で「return Promise」ではなく「Return await Promise」を選択する理由は何ですか?

Susan Sarandon
リリース: 2024-11-18 07:57:02
オリジナル
185 人が閲覧しました

Why Choose `return await promise` over `return promise` in JavaScript?

JavaScript の return await Promise と return Promise: 動作の違い

はじめに

JavaScript で非同期コードを扱う場合、開発者は Promise を管理するために async/await メカニズムを使用することがよくあります。ただし、非同期関数で Promise を返す場合は、return await Promise と return Promise という 2 つのバリエーションを考慮する必要があります。この記事では、これらのアプローチの微妙な違いについて詳しく説明します。

動作の違い

ほとんどの場合、return await Promise と return Promise の間に目立った違いはありません。どちらも解決または拒否する Promise を生成し、同じ観察可能な動作を提供します。

ただし、try-catch ブロックを使用すると、違いが明らかになります。次の例を考えてみましょう:

async function rejectionWithReturnAwait() {
  try {
    return await Promise.reject(new Error());
  } catch (e) {
    return 'Saved!';
  }
}
ログイン後にコピー

この場合、return await により、拒否された Promise が非同期関数内で確実にキャッチされ、catch 句の実行が許可され、「Saved!」に解決される Promise が返されます。

async function rejectionWithReturn() {
  try {
    return Promise.reject(new Error());
  } catch (e) {
    return 'Saved!';
  }
}
ログイン後にコピー

対照的に、return Promise は、拒否された Promise を async 関数内で待たずに直接返します。これは、拒否が catch 句によってキャプチャされず、呼び出し元が代わりに拒否を受け取ることを意味します。

影響

return await Promise と return Promise の選択は依存します。望ましい動作について。非同期関数内のエラー処理が重要な場合は、return await Promise を使用して、エラーが確実に捕捉され、それに応じて処理されるようにする必要があります。それ以外の場合は、return Promise を使用して、不必要なネストを回避することでパフォーマンスを最適化できます。

以上がJavaScript で「return Promise」ではなく「Return await Promise」を選択する理由は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート