ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript で async/await と .then() を組み合わせると有益ですか?

JavaScript で async/await と .then() を組み合わせると有益ですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-02 07:57:02795ブラウズ

Is it beneficial to mix async/await and .then() in JavaScript?

JavaScript での Async/Await と .then() の混合

質問:

両方の async を使用することをお勧めしますか以下に示すように、/await と .then().catch() は同じ非同期関数内にありますか?

async apiCall(params) {
    var results = await this.anotherCall()
      .then(results => {
        //do any results transformations
        return results;
      })
      .catch(error => {
        //handle any errors here
      });
    return results;
  }

回答:

async/await と .catch() を一緒に使用すると、次のことが可能になります。 JavaScript での簡潔かつ効率的なエラー処理。その理由は次のとおりです:

コンパクト コード:

Async/await を使用すると、非同期コードで同期のようなシーケンシャルな構文を使用できるようになり、.catch() はエラー処理を処理します。この 2 つを組み合わせることで、try/catch ブロックを必要とせずに、クリーンで一貫性のあるエラー管理を実現できます。

例:

次の例を考えてみましょう:

<code class="js">async function asyncTask() {
  throw new Error('network')
}

async function main() {
  const result = await asyncTask().catch(error => console.error(error));
  console.log('result:', result)
}

main();</code>

このコードでは、asyncTask 関数がネットワーク エラーをスローしますが、これは .catch() ブロックによって適切に処理されます。エラーはコンソールに出力され、メイン関数に影響を与えることなくコードの実行が続行されます。

利点:

async/await と .catch() を一緒に使用する

  • 可読性の向上: async/await 構文が同期プログラミングを模倣しているため、コードが理解しやすくなります。
  • エラーの簡素化処理: エラー処理は .catch() ブロックに集中され、コードベース全体で一貫したアプローチが提供されます。
  • 効率の向上: 非同期/待機および .catch() のエラーの合理化try/catch ブロックの必要性を排除することで処理し、定型コードの量を削減します。

ただし、async/await と .then() を不必要に混在させると、不必要な複雑さと潜在性が生じる可能性があることに注意することが重要です。コールバック地獄。したがって、一般的には、必要な場合にのみ async/await と .catch() を使用することをお勧めします。

以上がJavaScript で async/await と .then() を組み合わせると有益ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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