nodejs では、コールバックは別の関数にパラメーターとして渡される関数であり、通常は最初の関数が完了した後に呼び出されます。これは非同期同等の関数であり、Node のすべての API でサポートされています。そのような方法。
この記事の動作環境: Windows 10 システム、nodejs バージョン 12.19.0、Dell G3 コンピューター。
コールバックは非同期同等の関数です。コールバック関数は、特定のタスクが完了すると呼び出されます。ノードはコールバックを広範囲に使用します。すべてのノード API はコールバックをサポートしています。
たとえば、ファイルを読み取る関数はファイルの読み取りを開始し、次の命令を実行して制御を実行環境にすぐに戻すことができます。ファイル I/O が完了すると、コールバック関数が呼び出され、ファイルの内容がパラメータとしてコールバック関数に渡されます。したがって、ファイル I/O をブロックしたり待機したりすることはありません。これにより、関数が結果を返すのを待たずに大量のリクエストを処理できるため、Node.js はスケーラビリティが高くなります。
ブロック コードの例
次のテキストを含む input.txt という名前のファイルを作成します
Yiibai Point is giving self learning content to teach the world in simple and easy way!!!!!
main という名前の js ファイルを作成します。js には次の内容が含まれますコード:
var fs = require("fs"); var data = fs.readFileSync('input.txt'); console.log(data.toString()); console.log("Program Ended");
次に、main.js を実行して結果を確認します:
$ node main.js
検証出力
Yiibai Point is giving self learning content to teach the world in simple and easy way!!!!! Program Ended
ノンブロッキング コードの例
次のテキストを含む input.txt という名前のファイルを作成します。
Yiibai Point is giving self learning content to teach the world in simple and easy way!!!!!
次のコードで main.js ファイルを更新します。
var fs = require("fs"); fs.readFile('input.txt', function (err, data) { if (err) return console.error(err); console.log(data.toString()); }); console.log("Program Ended");
次に、main.js を実行して、表示される内容を確認します。 結果:
$ node test.js
検証出力
Program Ended Yiibai Point is giving self learning content to teach the world in simple and easy way!!!!!
これら 2 つの例は、ブロッキング呼び出しと非ブロッキング呼び出しの概念を示しています。最初の例は、プログラムがファイルを読み取るまでブロックし、その後プログラムの終了位置までのみ進むことを示しています。 2 番目の例では、プログラムはファイルの読み取りを待機せず、「プログラムが終了しました」と表示するだけで、その間、プログラムはブロックせずにファイルの読み取りを続けます。
したがって、ブロッキング プログラムは順番に実行され、プログラミングの観点からロジックの実装が容易になりますが、ノンブロッキング プログラムは順番に実行されません。この場合、プログラムは任意のデータを使用する必要があります。処理には、同じブロックを使用し続けて、それらが順次実行されるようにする必要があります。
推奨学習: 「nodejs ビデオ チュートリアル 」
以上がNodejsのコールバックは何を意味しますかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。