Node.js のコールバック関数の興味深い説明 (例付き)

青灯夜游
リリース: 2021-10-15 10:11:02
転載
1523 人が閲覧しました

この記事では、Node.js のコールバック関数について興味深い紹介をし、例を通してコールバック関数について簡単に理解できるようにします。皆様のお役に立てれば幸いです。

Node.js のコールバック関数の興味深い説明 (例付き)

Node.js のコールバック関数に関する興味深い話

Node.js 非同期プログラミングの直接の現れはコールバック関数です. コールバック関数はタスクの完了後に呼び出されますが、Node.js では多くのコールバック関数が使用されているため、コールバック関数について語るには Node.js を使用するのが適切だと思います。さて、コールバック関数について頑張って話しましょう~ [推奨学習: "nodejs チュートリアル"]

コールバック関数とは

オンライン フォーラムにアクセスしてリソース シードを探しましたが、探しているリソースが見つからなかったため、フォーラムに投稿して、リソースを求めるメール アドレスを残しました。数日後、ネットユーザーがリソースを見つけたので、あなたに電子メールを送信し、あなたはリソース シードを受け取り、リソースをダウンロードします。ここでは、フォーラムに電子メール アドレスを残すときにコールバック関数を登録します。残した電子メール アドレスはコールバック関数です。誰かがリソースを見つけて電子メールを送信すると、コールバック関数がトリガーされ、コールバック関数が呼び出されます。シードを取得してダウンロードすると、response. コールバック イベントになります。

例:

function main(info,callback){
    console.log("点赞、评论、转发了没?!")
    callback(info)
}

function say(msg){
    console.log(msg)
}

main("给了,给了!",say)
ログイン後にコピー

ここでの callback はコールバック関数です。もちろん、この名前を使用する必要はありません。関数本体では、最初にメッセージが出力され、その後、msg をパラメータとして使用するコールバック関数が呼び出されます。

コールバック関数の例

Node.js プログラムを使用してファイルを読み取るには 2 つの方法があります。 1 つは同期操作で、読み取り操作が完了した後にのみ後続のコマンドを実行できます。この方法はブロッキングと呼ばれます。もう 1 つの方法は非同期であり、他のコマンドを実行しながらファイルを読み取ることができます。この方法はノンブロッキングとも呼ばれます。

ノンブロッキング メソッドはコールバック関数に基づいており、操作の並列実行が可能です。イベント発生時に操作結果がコールバック関数で処理されるため、プログラムは操作結果を待たずに次のステップを実行できるため、Node.js のパフォーマンスが大幅に向上し、大量の処理を処理できるようになります。同時リクエスト。

例:

const fs = require("fs")

fs.readFile('./foo.txt',function(err,data){
    if(err) return console.error(err)
    console.log(data.toString())
})

console.log("Node.js 程序已经执行结束~")
ログイン後にコピー

実行結果:

Node.js 程序已经执行结束~
小的们,快给我点赞~
ログイン後にコピー

ファイルを読み込む場合、ファイルを読み込むかどうかに関係なく、以下の出力文が実行されることがわかります。したがって、最初にプログラムが終了したことを示す文字が表示され、ファイルの読み込みを待ってからファイルの内容が表示されます。ファイルの内容はコールバック関数のパラメーター データとして返されるため、コードを実行する前にファイル I/O 操作が完了するのを待つ必要はありません。

プログラミング関連の知識について詳しくは、プログラミング ビデオをご覧ください。 !

以上がNode.js のコールバック関数の興味深い説明 (例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:juejin.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート