nodejs入门二

来源:互联网 发布:怎么做好淘宝店铺 编辑:程序博客网 时间:2024/06/05 02:57

相关

  • 官网:https://nodejs.org/en/
  • API:https://nodejs.org/api/
  • 慕课网:进击Node.js基础(一):http://www.imooc.com/learn/348

说点啥

上次提到了 api中的Url与Http 。 这次我们继续跟着视频来走,看一下事件Events

上期回顾总结

我们在看API的时候,发现有些方法里的参数是用’[]’包含起来的,包含起来的:非必要参数
eg:

emitter.removeAllListeners([event])

如果event存在,则移除event相关的监听,如果enent不存在,就是移除所有的监听(大家看了视频就懂了)


先来看一段上篇文章的代码:

http.get(url, function (res) {    var html = ''    res.on('data', function(data) {        html += data    })    res.on('end', function(){        filterChapters(html)    })}).on('error', function() {    console.log('获取网站数据出错!')})

当我看到这里的时候,我会问,data是啥啊?哪儿来的?
这就要追溯到这次文章的男主Event了。

API

  • 对应api地址:https://nodejs.org/api/events.html
  • 对应视频地址:http://www.imooc.com/video/8525/0

Events

Events    Class: events.EventEmitter        emitter.addListener(event, listener)        emitter.on(event, listener)        emitter.once(event, listener)        emitter.removeListener(event, listener)        emitter.removeAllListeners([event])        emitter.setMaxListeners(n)        emitter.getMaxListeners()        EventEmitter.defaultMaxListeners        emitter.listeners(event)        emitter.emit(event[, arg1][, arg2][, ...])        emitter.listenerCount(type)        Class Method: EventEmitter.listenerCount(emitter, event)        Event: 'newListener'        Event: 'removeListener'        Inheriting from 'EventEmitter'

PS:我总觉得api里的’,’和’[‘的位置反了。。。

emit

事件的触发,与on搭配使用

emitter.emit(event, [arg1], [arg2], [...])

参数

  • event:事件名 —– ‘event’
  • arg1:参数1 —— ‘参数1’
  • ……

不多说,直接来看下一个方法,我们搭配使用

on

触发的响应,与emit搭配使用。相当于安卓中的setOn***Listener

emitter.on(event, listener)

参数

  • event:事件名 —– ‘event’
  • listener:触发响应的具体执行

emit搭配on

var EventEmitter = require('events').EventEmittervar life = new EventEmitter()// 定义一个函数function Hello(who){    console.log('hello ' + who)}life.on('welcome', function(who){    console.log('welcome ' + who)})life.on('hello', Hello)life.emit('welcome', 'Bigflower')life.emit('hello', 'Bigflower')

最后一句调用后,立即执行event==welcome的事件所对应的函数,很容易理解,看视频大家就懂了。
输出结果是:

welcome Bigflowerhello Bigflower

remove

即取消on中的Listener

removeListener

取消某个listener

life.removeListener('hello', Hello)

removeAllListener

取消一堆listener

life.removeAllListeners() // 取消所有的listenerlife.removeAllListeners('welcome') // 取消事件为welcome的所有listener

EventEmitter.listenerCount

获得某个事件event的listener数量

console.log(EventEmitter.listenerCount(life, 'welcome')) 

setMaxListeners(n)

设置某个事件监听器的最大值,默认是10个(太多了可能会:内存泄漏(oh,从安卓跑到nodejs,还是离不开这玩意儿))

相关文章

nodejs入门(一)URL与HTTP http://www.flowerfat.com/2015/10/15/nodejs%E5%85%A5%E9%97%A8%E4%B8%801015/

nodejs入门(二)Events
http://www.flowerfat.com/2015/10/16/nodejs%E5%85%A5%E9%97%A8%E4%BA%8C1016/

0 0
原创粉丝点击