做一个定时器功能,用node的对象和事件机制。
每隔500毫秒输出一个点,输出3次。
全部代码如下,使用事件机制。
var util=require('util');
var events=require('events');
function Pulsar(speed, times) {
events.EventEmitter.call(this);
this.speed=speed;
this.times=times;
// 设置监听器
this.on('pulse',()=>{
console.log('.');
});
}
// 继承
util.inherits( Pulsar, events.EventEmitter );
// 写一个start方法
Pulsar.prototype.start=function() {
var self = this;
var id=setInterval( function() {
self.emit('pulse');
self.times--;
if (self.times==0) {
clearInterval(id);
}
}, this.speed);
};
// 执行。
var pulsar= new Pulsar(500,3);
pulsar.start();
该程序执行结果如下:
.
.
.
然后就结束了。
仔细观察,发现代码中的定时器部分的this引用有点丑陋,于是有两种解决方案,
1、使用bind绑定this,bind是所有函数的一个自带的内部方法。
被改动的代码如下:
// 写一个start方法
Pulsar.prototype.start=function() {
var id=setInterval( function() {
this.emit('pulse');
this.times--;
if (this.times==0) {
clearInterval(id);
}
}.bind(this), this.speed);
};
把匿名函数用括号括起(不用括号也可以),然后加bind方法绑定自身,感觉应该还不错,可以执行,但是还有更好的方案。
2、使用箭头函数。
// 写一个start方法
Pulsar.prototype.start=function() {
var id=setInterval( ()=> {
this.emit('pulse');
this.times--;
if (this.times==0) {
clearInterval(id);
}
}, this.speed);
};
node果然趣味无穷,花样比较多。
分享到:
相关推荐
node的学习和代码
node即学即用第二章示例代码 使用前提是按照node.js, 并且安装好express和ejs库
超简单AIoT物联网与网站假设必学神器:Node-RED视觉化开发工具配套示例代码 超简单AIoT物联网与网站假设必学神器:Node-RED视觉化开发工具配套示例代码 超简单AIoT物联网与网站假设必学神器:Node-RED视觉化开发工具...
这是近期我详解过的一个深度学习(图神经网络GNN基础)等的代码部分,含有完整的代码+数据集,所有内容已经在博客中记录,具体可以参阅我主页的文章:【深度学习】详解 Node2Vec原理(含代码实现讲解) | NLP中训练...
Node中的Http模块和Url模块的使用示例代码;Node中的Http模块和Url模块的使用示例代码
资源名称:Node学习指南内容简介:node.js是一套用来编写高性能网络服务器的javascript工具包。它可以让javascript在服务器端运行,因此,可...资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
单链表基础操作及代码示例 下面是一个简单的单链表的C语言实现,包括了单链表的基本操作如创建、插入、删除、查找等: ```c #include #include // 定义链表节点 typedef struct Node { int data; struct Node*...
Node.js是一套用来编写高性能网络服务器的JavaScript工具包。它可以让JavaScript在服务器端运行,因此,... 《Node学习指南》适合有一定基础的JavaScript程序员阅读,也适合对学习Node应用开发感兴趣的读者学习参考。
node.js简单示例
node.js学习代码,一个是爬取图片到本地,一个是爬取网页内容存入数据库,通过这两个实例代码可以了解到Node.js中mysql和fs这两个模块的简单的使用方法。
nodecpp-demo, node.js C 集成示例代码 nodecpp演示这个库包含完整的代码清单,可以帮助你开发 node.js 插件。我的博客- blog.scottfrees.com 和 node.js C 和集成的内容都在我的博客上得到了充分的解释。基本一些...
本书假设你是一名有经验的PHP开发人员,并且已经开始学习如何编写Node.js。本书介绍了PHP和Node.js这两种语言惊人的相似之处,并详细讲解了如何将整个PHP Web应用转换为Node.js。通过对比一些PHP和Node.js的特性,你...
Node学习指南.pdf。Node学习指南.pdf。Node学习指南.pdf
node中短信api实现验证码登录的示例代码 此处操作比较简洁易懂,可参考:node服务器快速搭建 对于短信api ,此处以 阿里云的短信服务为例(只要是有短信服务的平台皆可使用) 2.1 登录平台进行参数配置 1. 进入...
2018年1月版,李锴著,《新时期的node.js入门》,书中所有示例的代码
使用 node.js mongoo vue 打造简单的网页博客. 教程类
我重写并改进的Node.js的Connect框架的源代码,以及一个演示框架功能的小示例网站程序,其中包括简单的读取静态文件的功能、以及获取远程天气预报数据的功能(仅为演示)。 说明: * 由于可能将代码发布到github,...
node 的聊天代码 作为学习使用,本人初学者,应该只对初学者有用吧!
我的Node.js简介会话的代码示例 有关这些示例的更多信息,请阅读我的博客文章: : 样品 在演示过程中按引入顺序排列的代码示例列表。 helloworld.js:服务器端JavaScript(无网络内容) webserver1.js:裸露的Web...
node个人的练习,个人收藏使用,对新手还是有参考的价值的,如果是以会的就不要下载