Node.js事宜轮回
Node.js 是单历程单线程应用顺序,然则由于V8引擎供应的异步实行回调接口,经由过程这些接口能够处置惩罚大批的并发,所以机能异常高。
Node.js 险些每一个API都支撑回调函数。
Node.js 基本上一切都事宜机制都是经由过程观察者形式完成
Node.js 单线程相似进入一个while(true)事宜轮回,直到没有事宜观察者退出,每一个异步事宜都天生一个事宜观察者,
如果有事宜发作就挪用该回调函数。
事宜驱动顺序
Node.js 运用事宜驱动模子,当web server吸收到要求,就把它封闭然后举行处置惩罚,然后去效劳下一个web要求。
当这个要求完成,它被放回处置惩罚行列,当抵达行列开首,这个效果被返回给用户。
这个模子异常高效可扩展性异常强,由于webserver一向吸收要求而不守候任何读写操纵。(这也被称之为非壅塞式IO或许事宜驱动IO)
在事宜驱动模子中,会天生一个主轮回来监听事宜,当检测到事宜时触发还调函数。
//引入events
const events = require('events')
// 建立eventEmitter对象
const 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',() => {
console.log('数据吸收胜利。')
})
// 触发connection事宜
eventEmitter.emit('connection')
console.log('顺序实行终了')
Node应用顺序是怎样事情的 ??
在Node应用顺序中,实行异步操纵都函数将回调函数作为末了一个参数,回调函数吸收毛病对象做一个第一个参数。
const fs = require("fs")
fs.readFile('input.txt',(err,data) => {
if(err) {
console.log(err)
}else{
console.log(data.toString())
}
})
console.log("顺序实行完毕!")
这段代码,input.txt文件我给删除了,所以在实行过程当中,发作毛病,毛病err对象就会输出毛病信息。