(第一次)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");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值