做一个定时器功能,用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.js、Express和EJS在实际项目中的应用,提升你的全栈开发能力。在探索过程中,遇到任何问题,都可以参考官方文档或社区资源来获得解答。不断实践和理解这些核心...
node的学习和代码
这个压缩包“node练习代码”显然包含了作者在学习Node.js过程中编写的实践代码,对于初学者来说,是一个很好的参考资料。 1. **Node.js基础**: Node.js的核心特性在于它的非阻塞I/O模型,这使得它在处理大量并发...
在本文中,我们将深入探讨Node.js的学习入门,以"node.js学习入门示例"为指导,结合提供的"microblog"项目实例,探索Node.js的基本概念、核心特性以及如何使用它来构建一个微型博客系统。首先,我们要理解Node.js是...
在IT行业中,代码示例是学习和理解编程概念、技术框架和特定问题解决方案的重要资源。"代码示例.rar"这个压缩包很可能包含了多种编程语言、框架或库的实例代码,帮助用户快速上手或者解决实际问题。由于标签为空,...
超简单AIoT物联网与网站假设必学神器:Node-RED视觉化开发工具配套示例代码 超简单AIoT物联网与网站假设必学神器:Node-RED视觉化开发工具配套示例代码 超简单AIoT物联网与网站假设必学神器:Node-RED视觉化开发工具...
在"Node.js入门经典源代码"中,你可能会看到以下示例: - 基本的HTTP服务器创建,展示如何使用Node.js搭建一个简单的网页服务器。 - 异步I/O操作,如读取文件、写入文件等,展示了非阻塞I/O的实现。 - 事件和回调...
本书假设你是一名有经验的PHP开发人员,并且已经开始学习如何编写Node.js。本书介绍了PHP和Node.js这两种语言惊人的相似之处,并详细讲解了如何将整个PHP Web应用转换为Node.js。通过对比一些PHP和Node.js的特性,你...
《Node.js权威指南》是一本深入探讨Node.js技术的书籍,源代码的提供是为了辅助读者更好地理解和实践书中...在学习过程中,结合书中的理论解释和实践代码,将有助于全面掌握Node.js这一强大的服务器端JavaScript平台。
总的来说,《新时期的Node.js入门》是一本全面介绍Node.js基础与实践的书籍,通过李锴精心编写的实例代码,读者不仅能学习到Node.js的基本语法,还能掌握实际开发中的各种技巧,为步入Node.js的世界打下坚实基础。
- 示例代码中的http模块通过require方法被引入,这是Node.js中模块引入的典型方式。 - require方法可以引入Node.js核心模块,也可以引入本地文件或第三方模块。 6. Node.js的端口监听 - 在Node.js中,通过listen...
这个"Node.js入门经典源代码"压缩包文件显然包含了用于学习和理解Node.js基础知识和实践的源代码示例。以下是一些关于Node.js的重要知识点,结合这个资源包,你可能会学到: 1. **异步非阻塞I/O**: Node.js的核心...
Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在...总之,这个源代码集合是学习和提升Node.js技能的宝贵资源,通过实践和探索,你将能更好地掌握Node.js的核心概念和技术,并能应用于实际项目中。
本资源包包含了Node.js的入门源代码和开发工具,对于初学者来说是极好的学习材料。 首先,我们要理解Node.js的核心特性。Node.js采用事件驱动、非阻塞I/O模型,这使得它在处理高并发请求时表现出色,特别适合于实时...
node.js简单示例
在本资源"node系列学习代码与express工程参考代码.zip"中,主要涵盖了Node.js和Express框架的学习内容。Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它让开发者能够在服务器端使用JavaScript进行开发,...
Node.js是一种基于Chrome V8引擎的服务器端JavaScript运行环境,它使得JavaScript能够脱离浏览器运行在服务器端,用于开发高性能...教程中的代码示例和项目实战将有助于读者加深理解,并将所学知识转化为实际开发能力。
nodecpp-demo, node.js C 集成示例代码 nodecpp演示这个库包含完整的代码清单,可以帮助你开发 node.js 插件。我的博客- blog.scottfrees.com 和 node.js C 和集成的内容都在我的博客上得到了充分的解释。基本一些...
在提供的压缩包文件"如何-学习-node-correctly-master"中,可能包含了课程笔记、代码示例或其他学习资源。通过仔细研究这些材料,你可以进一步巩固理论知识,实践操作技巧,从而更有效地学习Node.js。 总之,学习...