首頁 >web前端 >前端問答 >nodejs中回呼是什麼意思

nodejs中回呼是什麼意思

WBOY
WBOY原創
2022-03-04 15:20:151479瀏覽

在nodejs中,回調是將一個函數作為參數傳遞給另一個函數,並且通常在第一個函數完成後被調用;是一個非同步等效的功能,Node的所有的API都支持回調這樣的一種方式。

nodejs中回呼是什麼意思

本文操作環境:Windows10系統、nodejs 12.19.0版、Dell G3電腦。

nodejs中回呼是什麼意思

回呼是一個非同步等效的函數。在完成特定任務回調函數被呼叫。 Node大量使用了回呼。 Node的所有的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!!!!!

    建立一個js檔案名稱為main. 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!!!!!

    這兩個例子說明阻塞和非阻塞呼叫的概念。第一個例子說明程式區塊,直到它讀取該文件,然後只前進到結束程式的地方。在第二個例子中,程式不等待文件讀取,但它只是進行列印“Program Ended”,並同時程式無阻塞繼續讀取文件。

    因此,阻擋程式執行在序列,從程式設計點查看其更容易實現的邏輯,但非阻塞方案並不按順序執行,這樣的情況下一個程式需要使用的任何資料進行處理,它應保持使用式相同的區塊,使其依序執行。

推薦學習:《

nodejs影片教學

以上是nodejs中回呼是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn