回调
通常用来定义一次性响应的逻辑。比如对于数据库查询,可以指定一个回调函数来确定如何处理查询结果。这个回调函数可能会显示数据库查询结果,根据这些结果做些计算,或者以查询结果为参数执行另一个回调函数
//定时器回调
setTimeout(function(){
console.log('125');
},1000);
事件监听
本质上也是一个回调,不同的是,它跟一个概念实体(事件)相关联。例如,当有人在浏览器中点击鼠标时,鼠标点击是一个需要处理的事件。在Node中,当有HTTP请求过来时,HTTP服务器会发出一个请求事件。你可以监听那个请求事件,并添加一些响应逻辑。
重复响应
使用On响应重复事件
var event=require('events')
var channel=new event();
channel.on('join',function(ls)
{
console.log(ls)
})
channel.emit('join','123');
channel.emit('join','jhug');
输出
123
jhug
一次响应
使用once响应一次事件
var event=require('events')
var channel=new event();
channel.once('join',function(ls)
{
console.log(ls)
})
channel.emit('join','123');
channel.emit('join','jhug');
结果
123
事件名称
事件只是个键,可以是任何字符串:data 、join 或某些长的让人发疯的事件名都行。只有一个事件是特殊的,那就是error ,我们马上就会看到它
事件响应
使用emit触发事件join 事件
channel.emit('join','123');