日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nodejs-REPL/回调函数/事件循环

發布時間:2025/6/17 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nodejs-REPL/回调函数/事件循环 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
REPL 回調函數 事件循環REPL----------------------------------------------------- Node.js REPL(Read Eval Print Loop:交互式解釋器) 表示一個電腦的環境,類似 Window 系統的終端或 Unix/Linux shell,我們可以在終端中輸入命令,并接收系統的響應。 REPL可以執行如下任務{讀取 - 讀取用戶輸入,解析輸入了Javascript 數據結構并存儲在內存中。執行 - 執行輸入的數據結構打印 - 輸出結果循環 - 循環操作以上步驟直到用戶兩次按下 ctrl-c 按鈕退出。 }簡單的表達式運算 > 1 + ( 2 * 3 ) - 4 使用變量 > var y = 10 多行表達式{> var x = 0undefined> do {... x++;... console.log("x: " + x);... } while ( x < 5 ); }下劃線(_)變量 你可以使用下劃線(_)獲取上一個表達式的運算結果:{$ node> var x = 10undefined> var y = 20undefined> x + y30> var sum = _undefined> console.log(sum)30undefined> }REPL 命令{ctrl + c - 退出當前終端。ctrl + c 按下兩次 - 退出 Node REPL。ctrl + d - 退出 Node REPL.向上/向下 鍵 - 查看輸入的歷史命令tab 鍵 - 列出當前命令.help - 列出使用命令.break - 退出多行表達式.clear - 退出多行表達式.save filename - 保存當前的 Node REPL 會話到指定文件.load filename - 載入當前 Node REPL 會話的文件內容 }回調函數----------------------------------------------------- 回調函數在完成任務后就會被調用,Node 使用了大量的回調函數,Node 所有 API 都支持回調函數。 回調函數一般作為函數的最后一個參數出現 function foo1(name, age, callback) { } function foo2(value, callback1, callback2) { }----阻塞代碼實例 創建文件input.txt內容是{inputmessage } 然后創建main.js 內容是{var fs = require("fs");var data = fs.readFileSync('input.txt'); //synchronization 同步console.log(data.toString());console.log("程序執行結束!"); } 輸出{inputmessage程序執行結束! }----非阻塞代碼實例創建文件input.txt內容和上面一樣。然后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("程序執行結束!"); } 輸出{程序執行結束inputmessage}事件循環-----------------------------------------------------Node.js 是單進程單線程應用程序,但是因為 V8 引擎提供的異步執行回調接口,通過這些接口可以處理大量的并發,所以性能非常高。Node.js 幾乎每一個 API 都是支持回調函數的。Node.js 基本上所有的事件機制都是用設計模式中觀察者模式實現。Node.js 單線程類似進入一個while(true)的事件循環,直到沒有事件觀察者退出,每個異步事件都生成一個事件觀察者,如果有事件發生就調用該回調函數.Node.js 有多個內置的事件,我們可以通過引入 events 模塊,并通過實例化 EventEmitter 類來綁定和監聽事件,如下實例:// 引入 events 模塊var events = require('events');// 創建 eventEmitter 對象var eventEmitter = new events.EventEmitter();// 創建事件處理程序var connectHandler = function connected() {console.log('連接成功。');// 觸發 data_received 事件eventEmitter.emit('data_received');}// 綁定 connection 事件處理程序eventEmitter.on('connection', connectHandler);// 使用匿名函數綁定 data_received 事件eventEmitter.on('data_received', function(){console.log('數據接收成功。');});// 觸發 connection 事件eventEmitter.emit('connection');console.log("程序執行完畢。"); 執行結果{連接成功。數據接收成功。程序執行完畢。 }Node 應用程序是如何工作的?{在 Node 應用程序中,執行異步操作的函數將回調函數作為最后一個參數, 回調函數接收錯誤對象作為第一個參數。input.txt{inputmessage}var fs = require("fs");fs.readFile('input.txt', function (err, data) {if (err){console.log(err.stack);return;}console.log(data.toString());});console.log("程序執行完畢");執行結果{程序執行完畢inputmessage}刪除input.txt讓他報錯,執行結果是這樣的{程序執行完畢Error: ENOENT: no such file or directory, open 'C:\Users\Administrator\Desktop\S\input.txt'} }

?

總結

以上是生活随笔為你收集整理的nodejs-REPL/回调函数/事件循环的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。