ホームページ > 記事 > ウェブフロントエンド > Node.js の非同期コードでコールバック データを取得する方法
Node.js: 関数の呼び出しとコールバック応答の待機
Node.js では、コールバックに依存する非同期コードを開発すると、次のような課題が発生します。コールバックからデータを取得しようとしています。この記事では、関数が API 呼び出しを実行し、コールバック ラムダから応答を返すように設計されているシナリオについて説明します。ただし、最初の実装では困難に直面し、意図した結果を達成できません。
提供されたコード スニペットは、API を呼び出してコールバック ラムダ内で応答を返す単純化された関数を示しています。ただし、このアプローチには、関数がすぐに戻り、コールバック応答にアクセスできなくなるという欠陥があります。
2 番目のコード スニペットに示すように、ループを使用してコールバック応答を強制的に待機しようとすると、失敗したままになります。これは、Node.js のイベント ループがコールバックを待機している間も他のタスクの処理を継続するためです。
この問題に効果的に対処するために、Node.js はイベント駆動型モデルを利用します。正しいアプローチには、関数内でコールバック パラメーターを受け入れることが含まれます。計算が完了すると、コールバックが呼び出され、呼び出し元の関数が結果を処理できるようになります。
例:
<code class="javascript">function(query, callback) { myApi.exec('SomeCommand', function(response) { callback(response); }); }</code>
この改訂された関数では、コールバックは次のメカニズムとして機能します。元の呼び出し元に応答を「返す」。この関数は次のように呼び出されます。
<code class="javascript">myFunction(query, function(returnValue) { // Use the result within the callback instead of relying on a direct return });</code>
Node.js のイベント駆動型パラダイムを採用することで、開発者はコールバックを待つという落とし穴を回避し、非同期コードを処理するためのより効率的なアプローチを活用できます。
以上がNode.js の非同期コードでコールバック データを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。