在nodejs中,回調是將一個函數作為參數傳遞給另一個函數,並且通常在第一個函數完成後被調用;是一個非同步等效的功能,Node的所有的API都支持回調這樣的一種方式。
本文操作環境:Windows10系統、nodejs 12.19.0版、Dell G3電腦。
回呼是一個非同步等效的函數。在完成特定任務回調函數被呼叫。 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中文網其他相關文章!