nodejs事件机制
var EventEmitter = function() {
this.evts = {};
};
EventEmitter.prototype = {
constructor: EventEmitter,
on: function(type, fn) {
var evt = this.evts[type] || (this.evts[type] = []);
if(evt.indexof(fn)) {
evt.push(fn);
}
},
off: function(type, fn) {
var handlers = this.evts[type] || [], index;
if(handlers.length === 0) {
this.evts = {};
} else if(arguments.length === 1) {
delete this.evts[type];
} else {
handlers.some(function(f, idx) {
if(f === fn || f.fn === fn) {
index = idx;
return true;
}
});
index = handlers.indexof(fn);
if(index > -1) {
handlers.splice(index, 1);
}
if(this.evts[type].length === 0) {
delete this.evts[type];
}
}
},
emit: function(type) {
if(!this.evts[type]) return;
var args = [].slice.call(arguments,1);
this.evts[type].foreach(function(f) {
f.apply(null,args);
});
},
once: function(type, fn) {
var self = this;
var f = function() {
fn.apply(this,[].slice.call(arguments,0));
self.off(type, f);
}
f.fn = fn;
this.on(type, f);
}
};
nodejs事件机制的更多相关文章
- nodejs 事件机制
node 事件机制 一 三种定时器 NodeJS中有三种类型的定时器:超时时间.时间间隔.即时定时器 1.超时时间:setTimeout(callback,delayMilliSeconds,[a ...
- EventEmitter:nodeJs事件触发机制
Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列 Node.js 里面的许多对象都会分发事件:一个 net.Server 对象会在每次有新连接时触发一个事件, 一个 fs.r ...
- 12.nodejs事件轮询机制
一:nodejs事件轮询机制 就是 函数的执行顺序 <script type="text/javascript"> setImmediate(function(){ ...
- Ext JS学习第十六天 事件机制event(一) DotNet进阶系列(持续更新) 第一节:.Net版基于WebSocket的聊天室样例 第十五节:深入理解async和await的作用及各种适用场景和用法 第十五节:深入理解async和await的作用及各种适用场景和用法 前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、G
code&monkey Ext JS学习第十六天 事件机制event(一) 此文用来记录学习笔记: 休息了好几天,从今天开始继续保持更新,鞭策自己学习 今天我们来说一说什么是事件,对于事件 ...
- nodeJS中的事件机制
events模块是node的核心模块,几乎所有常用的node模块都继承了events模块,比如http.fs等.本文将详细介绍nodeJS中的事件机制 EventEmitter 多数 Node.js ...
- Node.js入门:事件机制
Evented I/O for V8 JavaScript 基于V8引擎实现的事件驱动IO. 事件机制的实现 Node.js中大部分的模块,都继承自Event模块(http://n ...
- 【iScroll源码学习03】iScroll事件机制与滚动条的实现
前言 想不到又到周末了,周末的时间要抓紧学习才行,前几天我们学习了iScroll几点基础知识: 1. [iScroll源码学习02]分解iScroll三个核心事件点 2. [iScroll源码学习01 ...
- nodejs事件的监听与事件的触发
nodejs事件(Events) 一.事件机制的实现 Node.js中大部分的模块,都继承自Event模块(http://nodejs.org/docs/latest/api/events.html ...
- nodejs运行机制
有一天老大忽然问起我这个问题,nodejs运行机制 是怎样的?因自己对nodejs也不是很熟悉,就上网查了一下,得出结果如下: 1.简介 Node.js是一个事件驱动I/O服务端JavaScript环 ...
随机推荐
- hadoop中汉字与英文字符混合的keyword做为combine的key的问题
近期,须要将汉字与字符的非常合串作为combine的输出的key, 这样做是希望,利用hadoop的归并来依照key进行分组,然后,在reduce阶段,拿到的都是一个一个组. 可是,发现,这样的,汉字 ...
- 20151204--JDBC
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- TreeSet类的排序问题
http://www.cnblogs.com/lixiaolun/archive/2012/12/25/2832775.html TreeSet支持两种排序方法:自然排序和定制排序.TreeSet默 ...
- Unity3D使用mesh创建一个正方形
using UnityEngine; using System.Collections; public class Quad : MonoBehaviour { // Use this for ini ...
- mysql函数操作
<?php try{ $dbh = new PDO('mysql:dbname=testdb;host=localhost', 'mysql_user', 'mysql_pwd'); }catc ...
- head first 设计模式读书笔记 之 策略模式
作为一个php开发者,深知曾经很多程序员都鄙视php,为什么呢?因为他们认为php的语法是dirty的,并且由于开发者水平参差不齐导致php的代码更加乱上加乱,维护起来简直一坨shit一样.随着php ...
- SAR图像与光学图像区别
按传感器采用的成像波段分类,光学图像通常是指可见光和部分红外波段传感器获取的影像数据.而SAR传感器基本属于微波频段,波长通常在厘米级.可见光图像通常会包含多个波段的灰度信息,以便于识别目标和分类提取 ...
- 编译时出现clock skew detected, your build may be incompeleted
错误原因为文件修改时间大于系统时间,这时候如果date输出系统时间,会发现这个时间是错误的.在nachos实习时多次出现这个错误,简单的方法尝试make多次直到有一次出现'nachos' is up ...
- Error copying image in the datastore: Not allowed to copy image file
opennebula error copying image in the datastore not allowed to copy image file Error copying image i ...
- openNebula images