當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
(第一次)NODEJS学习笔记
生活随笔
收集整理的這篇文章主要介紹了
(第一次)NODEJS学习笔记
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
回調函數 事件循環 讀文件 events.Emitter
I:nodejs異步的實現
noddJs的異步編程就體現在回調函數上,node.js的所有api都支持回調函數。
通過回調函數可以實現異步化,但不能說使用了回調后程序就異步化了
II:非阻塞代碼和阻塞代碼
非阻塞代碼也就是異步的操作,我先去完成其他的事情,等你IO操作好之后,我再來處理阻塞代碼 就是一直等著你IO操作 等IO好了之后,再做下面的事情。
III:nodejs為什么性能比較高
nodejs 是單進程單線程的應用程序,但是由于V8引擎提供的異步執行回調接口
,通過這些接口可以處理大量的并發,所以性能十分的高。幾乎每一個API都支持回調函數。
IV:nodejs的事件處理使用什么設計模式
- nodejs所有的事件機制都是通過觀察者模式來實現的
- 單線程會設計一個while(true)的事件循環,直到沒有事件觀察者退出
- 每一個異步事件都會生成一個事件觀察者,如果有事件發生那么就使用回調函數。
V:nodejs事件驅動程序
nodejs使用事件驅動模型,當web server接受到請求之后,就把他關閉進行處理,然后去服務下一個web請求,使用非阻塞式的IO或者是事件驅動IO
// 非阻塞式IO var fs=require("fs");fs.readFile("q.jtxt",function(err,data){if(err) return console.error(err);console.log(data.toString()); });console.log("程序執行結束");// 事件的綁定與觸發調用 var events=require("events"); var eventEmitter=new events.EventEmitter();var connectHadnler= function connected(){console.log("connect successfully");eventEmitter.emit("data_received"); }eventEmitter.on("connection",connectHadnler);eventEmitter.on("connection",function(){console.log("yes successfully"); })eventEmitter.emit("connection"); console.log("all finished successfully");總結
以上是生活随笔為你收集整理的(第一次)NODEJS学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2020 操作系统第一天复习(习题总结)
- 下一篇: 2020 操作系统第二天复习(习题总结)