ホームページ >ウェブフロントエンド >フロントエンドQ&A >Nodejsコールバック地獄とは何ですか
nodejsでは基本的に「I/O」の結果をコールバック関数で処理する必要がありますが、複数のイベントを処理する場合、コールバック関数が階層ごとに入れ子になってしまうのがコールバック地獄です。 、非同期リクエストは非同期リクエスト内にネストされ、一方の非同期リクエストは他方の非同期リクエストの実行結果に依存し、コールバックを使用して相互にネストされます。
この記事の動作環境: Windows 10 システム、nodejs バージョン 12.19.0、Dell G3 コンピューター。
nodejs の I/O 操作の結果は基本的にコールバック関数で処理する必要があり、複数のイベントを処理する場合、コールバック関数はレイヤーによって埋め込まれます。さて、これはコールバック地獄です。
非同期リクエストは、非同期リクエスト内にネストされます。一方の非同期リクエストは、コールバックを使用して相互にネストし、他方の非同期リクエストの実行結果に依存します。
Nodejs の最大のハイライトは、イベント駆動型のノンブロッキング I/O モデル。これにより、Nodejs は強力な同時処理機能を備え、ネットワーク アプリケーションの作成に非常に適しています。 Nodejs のほとんどの I/O 操作はほぼ非同期です。つまり、I/O 操作の結果は基本的に、ファイルの内容を読み取る次の関数などのコールバック関数で処理する必要があります。 2 つのファイルを読み取り、処理のために 2 つのファイルの内容をマージする場合はどうすればよいでしょうか? 短期間 js に触れたことのあるほとんどの人は、次のことを行う可能性があります:
fs.readFile('/etc/passwd', function (err, data) { if (err) throw err; console.log(data); });
処理する場合はどうすればよいでしょうか?同様のシナリオが複数あり、コールバック関数が層ごとに入れ子になっており、これはよくコールバック ピラミッドまたはコールバック地獄と呼ばれるものです。
推奨学習: 「
nodejs ビデオ チュートリアル以上がNodejsコールバック地獄とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。