Node.js はイベント駆動型のプラットフォームであり、関数がアクションを開始し、待機せずに実行を継続できる非同期プログラミングを奨励します。アクションの完了のために。ただし、値を返す前に関数がコールバックが呼び出されるまで待機する必要があるシナリオもあります。
myApi.exec メソッドを使用して同期呼び出しを行うことを目的とした次のコード スニペットを考えてみましょう。応答を処理するためのコールバックを受け入れます:
function(query) { myApi.exec('SomeCommand', function(response) { return response; }); }
コールバックから受信した応答を返すことが目的ですが、このコードは正しく機能せず、コールバックが実行される前にすぐに戻ります。
この問題に対処するために、Node.js はイベント駆動型のアプローチを採用しており、関数はコールバック結果をブロックすべきではありません。代わりに、コールバック パラメータを受け入れ、呼び出し元は結果を処理する関数を提供する必要があります。
この関数の正しい書き方は次のとおりです。
function(query, callback) { myApi.exec('SomeCommand', function(response) { // Additional processing... callback(response); // "Returning" the response via the callback }); }
このように、関数は非ブロッキングになり、コールバックが実行されるまで値を返しません。呼び出し元は次のようにこれを使用する必要があります:
myFunction(query, function(returnValue) { // Handle the return value here });
このイベント駆動型のアプローチは、非同期プログラミングを促進し、Node.js アプリケーションの効率的なパフォーマンスに不可欠なブロックを防ぎます。
以上がNode.js でコールバックの待機とブロックを解決する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。