Angular 6 では、開発者は次のコードを使用しないようアドバイスされています:
await someFunction().then(result => { console.log(result); });
懸念は、Promise チェーンを待つことが無駄であるということではありません。someFunction() が Promise を返す限り、両方のスニペットは同じように機能します。問題は別の場所にあります。
非同期プログラミング スタイルを混在させると混乱が生じます。 ES2017 で導入された非同期関数では、await キーワードが導入されています。 await を非同期関数内で使用すると、関数の実行が一時停止され、Promise が解決されるまで待機します。これにより、非同期プログラミングが簡素化され、コードを読みやすく理解しやすくなります。
一方、Promise Chaining は、非同期プログラミングに対する古いアプローチです。これには、 .then() を使用して複数の Promise を連結することが含まれます。このアプローチはまだ有効ですが、await と組み合わせると混乱する可能性があります。
たとえば、console.log() 呼び出しの場所に別の Promise 呼び出しを追加するか、条件付きで関数から戻りたい場合、意味論が不明確になります。関数の他の場所と同様に、コールバックで await を使用できますか? .then() コールバックから結果を返す必要がありますか?外部関数から戻ることは可能ですか?
これらの複雑さを回避するには、1 つの非同期プログラミング スタイルに固執し、できれば一貫性を保つために await を使用することをお勧めします。そうすることで、コードを簡素化し、バグが混入するリスクを軽減できます。より簡潔でクリーンなバージョンは次のようになります:
const result = await someFunction(); console.log(result);
以上がAngular 6 で Promise チェーンを待っているのはコードの匂いですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。