「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > コールバック地獄を明示的に回避する

コールバック地獄を明示的に回避する

2024 年 9 月 17 日に公開
ブラウズ:806

非同期プログラミングは、JavaScript、特に Node.js の大きな強みの 1 つです。ただし、関心を分離する必要があるため、複数の非同期操作がコールバックを介して実行されることが多く、これがいわゆる「コールバック地獄」につながる可能性があります。たとえば、JavaScript コードでネストされたコールバックを操作している状況を考えて、Promises と async/await 構造を使用してそれをリファクタリングする方法を見てみましょう。

コールバック地獄: 例

コールバックを使用して単純な製品管理システムのファイル操作を処理するコードから始めましょう:

Explicitly Avoiding Callback Hell

ここでは、ファイルの読み取りと書き込みを行う、適切にネストされたバックコールがいくつかあります。これはおそらく、コールバック地獄に陥ったときに作成するインスタンスの 1 つです。最後に、非同期操作の数が増えるとコードが大きくなり、インデントの量も増えて読みにくくなります。 save() メソッドでは、fs.readFile 関数がファイルを読み取り、そのコールバックが内容を解析し、fs.writeFile 関数を使用してファイルの内容を書き換えます。これは別のコールバックで行われます。このようなレベルのネストにより、コードはいわゆる「破滅のピラミッド」に似たものになります。

Promise と Async/Await への移行

このコールバック地獄を回避するために、コードをより読みやすく、管理しやすく、デバッグしやすくする JavaScript Promise と async/await 構文があります。
改良版は次のとおりです:

Explicitly Avoiding Callback Hell

Promise と Async/Await を使用する理由

Promise は、最小限のネスト構造で非同期操作を線形に管理できるようにすることで役立ちます。 async/await パターンはコードの読みやすさを向上させ、同期操作に近い方法で非同期操作にも対応します。特に try ブロックと catch ブロックを使用すると、エラー処理がより透明になり、理解しやすくなり、コードの保守性に貢献します。

結論

コールバック地獄は、JavaScript、特に Node.js でクリーンに動作する方法でコードを作成するときに本当の問題になる可能性があります。 Promises と async/await を使用すると、大量にネストされたコールバック地獄をクリーンな線形コードに変えることができ、同時にエラーへの対処が容易になります。コードを変換して見栄えを良くするだけでなく、より優れた JavaScript プログラマーになる正しい軌道に乗せることもできます。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/syriamme/explicitly-avoiding-callback-hell-h95?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3