ホームページ >ウェブフロントエンド >jsチュートリアル >Promise コンストラクター内で async/await を使用するのはアンチパターンですか?

Promise コンストラクター内で async/await を使用するのはアンチパターンですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-16 17:41:11376ブラウズ

Is Using async/await Inside a Promise Constructor an Anti-Pattern?

Promise() コンストラクター内での async/await の使用: アンチパターン?

このシナリオでは、async を使用しています。同時操作を管理する .eachLimit 関数。ただし、Promise コンストラクター関数内での async/await の使用には懸念が生じます。

Promise Constructor Anti-Pattern

Promise コンストラクターの executor 関数内での Promise の使用。を行っている場合は、アンチパターンとみなされます。コードに例示されているように、主なリスクは、エラーがチェックされずにすり抜けてしまう可能性です。

さらに、async/await により複雑さが増し、これらの問題が見えにくくなる可能性があります。たとえば、コード内:

let p = new Promise(resolve => {
  ""(); // TypeError
  resolve();
});

(async () => {
  await p;
})().catch(e => console.log("Caught: " + e)); // Catches it.

ここで、Promise コンストラクター内では TypeError は認識されませんが、async/await を使用すると捕捉されます。このような予期せぬ事態は問題となる可能性があります。

したがって、コードでネストされたコールバックの値にアクセスできる一方で、コードを堅牢で保守しやすいものにするためには、エラーを慎重に処理し、これらのアンチパターンを回避することが不可欠です。

以上がPromise コンストラクター内で async/await を使用するのはアンチパターンですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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