1.nodejs权威指南--基础知识
1. 基础知识
1.1 全局作用域及函数
1.1.1 全局作用域
在nodejs中,定义了一个global对象,代表nodejs中的全局命名空间,任何全局变量、函数或对象都是该对象的一个属性值
1.1.2 setTimeout函数与clearTimeout函数
setTimeout函数的使用方法如下:标示延迟ms时间调用 cb(args)
setTimeout(cb,ms,[args],[…])
clearTimeout函数使用方法如下:清除setTimeout函数返回的定时器
clearTimeout(arg);
例子:
var testFn = function(name){
console.log(name);
}
var timer = setTimeout(testFn,100,'chuck'); //100毫秒后执行testFn
clearTimeout(timer); //清除timer
1.1.3 setInterval函数与clearInterval
setTimeout函数的使用方法如下:标示延迟ms时间调用 cb(args)
setTimeout(cb,ms,[args],[…])
clearTimeout函数使用方法如下:清除setTimeout函数返回的定时器
clearTimeout(arg);
例子:
var testFn = function(name){
console.log(name);
}
var timer = setTimeout(testFn,100,'chuck'); //100毫秒后执行testFn
clearTimeout(timer); //清除timer
1.2 __filename变量与__dirname变量
l 可以使用__filename获取当前文件模块带有绝对路径的文件名
l 可以使用__dirname获取当前文件模块的目录的绝对路径
1.3 EventEmitter类
在nodejs用于实现各种事件处理的events模块中,定义了一个EventEmitter类,所有可能触发的对象都继承了EventEmitter类的子类的实例对象
表1‑1 EventEmitter类的各种方法
方法名与参数 |
描述 |
addListener(event,listener) |
对指定事件绑定事件处理函数 |
on(event,listener) |
对指定事件绑定事件处理函数(addListener的别名) |
once(event,listener) |
对指定事件指定只执行一次的函数 |
removeListener(event,listener) |
对指定事件移除事件处理函数 |
removeListener([event]) |
对指定事件移除所有事件处理函数 |
setMaxListeners(n) |
指定事件处理函数的最大值,n为整数值 |
listeners(event) |
获取指定事件的所有事件处理函数 |
emit(event,[arg1],[arg2],[…]) |
手工触发指定事件 |
另外,可以EventEmitter自身拥有一个listenerCount函数来获取某个对象的指定事件的处理函数的个数
EventEmitter.listenerCount(emitter,event);
同时,events模块为EventEmitter定义了newListener和removeListener两个事件,用于监听事件的移除和绑定,第一个参数表示指定的时间,第二个参数表示被绑定的时间处理函数
emitter.on('newListener',function(event,callback){
})
emitter.on('removeListener',function(event,callback){
})
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构