Node.js Domain 模块实例详解


Posted in Javascript onMarch 18, 2020

Node.js Domain(域) 简化异步代码的异常处理,可以捕捉处理try catch无法捕捉的异常。

Domain 模块可分为隐式绑定和显式绑定:

  • 隐式绑定: 把在domain上下文中定义的变量,自动绑定到domain对象
  • 显式绑定: 把不是在domain上下文中定义的变量,以代码的方式绑定到domain对象

创建domain.js,代码如下:

var eventEmitter=require("events").EventEmitter;
var domain=require("domain");
var emitter1=new eventEmitter();
//创建域
var domain1=domain.create();
domain1.on("error",function(err){
  console.log("domain1来处理这个错误:"+err.message);
})
//显示绑定
domain1.add(emitter1);
//添加emitter1对error的监听
emitter1.on("error",function(err){
  console.log("emitter1来处理这个错误:"+err.message);
})
emitter1.emit("error",new Error("触发错误,指定由emitter1处理"));
emitter1.removeAllListeners("error");//移除emitter1对error的监听
emitter1.emit("error",new Error("触发错误,指定由domain1处理"));
//创建域
var domain2=domain.create();
domain2.on("error",function(err){
  console.log("domain2来处理这个错误:"+err.message);
})
//隐式绑定
domain2.run(function(){
  var emitter2=new eventEmitter();
  emitter2.emit("error",new Error("触发错误,指定由domain2处理"));
})
domain1.remove(emitter1);
emitter1.emit("error",new Error("触发错误,系统将崩溃"));

总结

到此这篇关于Node.js Domain 模块实例详解的文章就介绍到这了,更多相关node.js domain 模块内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
JavaScript Event事件学习第一章 Event介绍
Feb 07 Javascript
jQuery入门知识简介
Mar 04 Javascript
javascript来定义类的规范小结
Nov 19 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
Jun 06 Javascript
JQuery表单验证插件EasyValidator用法分析
Nov 15 Javascript
自动完成的搜索框javascript实现
Feb 26 Javascript
动态加载JavaScript文件的两种方法
Apr 22 Javascript
vue实现可增删查改的成绩单
Oct 27 Javascript
Vue中建立全局引用或者全局命令的方法
Aug 21 Javascript
Electron + vue 打包桌面操作流程详解
Jun 24 Javascript
javascript实现切割轮播效果
Nov 28 Javascript
vue 微信扫码登录(自定义样式)
Jan 06 Javascript
js判断密码强度的方法
Mar 18 #Javascript
vue项目配置使用flow类型检查的步骤
Mar 18 #Javascript
Vue项目中使用flow做类型检测的方法
Mar 18 #Javascript
JavaScript正则表达式验证登录实例
Mar 18 #Javascript
JS正则表达式验证密码强度
Mar 18 #Javascript
原生js实现密码强度验证功能
Mar 18 #Javascript
JavaScript实现密码强度实时验证
Mar 18 #Javascript
You might like
php开发留言板的CRUD(增,删,改,查)操作
2012/04/19 PHP
php加水印的代码(支持半透明透明打水印,支持png透明背景)
2013/01/17 PHP
iOS+PHP注册登录系统 PHP部分(上)
2016/12/26 PHP
JavaScript 高级篇之闭包、模拟类,继承(五)
2012/04/07 Javascript
JS求平均值的小例子
2013/11/29 Javascript
简单谈谈jQuery(function(){})与(function(){})(jQuery)
2014/12/19 Javascript
JavaScript 里的类数组对象
2015/04/08 Javascript
js确认框confirm()用法实例详解
2016/01/07 Javascript
浅谈javascript运算符——条件,逗号,赋值,()和void运算符
2016/07/15 Javascript
如何获取元素的最终background-color
2017/02/06 Javascript
详解nodeJS中读写文件方法的区别
2017/03/06 NodeJs
js中获取键盘按下键值event.keyCode、event.charCode和event.which的兼容性详解
2017/03/15 Javascript
node+express+ejs使用模版引擎做的一个示例demo
2017/09/18 Javascript
js中的闭包学习心得
2018/02/06 Javascript
vue弹窗插件实战代码
2018/09/08 Javascript
Vue项目引进ElementUI组件的方法
2018/11/11 Javascript
VuePress 静态网站生成方法步骤
2019/02/14 Javascript
[40:19]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.18
2020/12/19 DOTA
Python获取单个程序CPU使用情况趋势图
2015/03/10 Python
详解Python的Django框架中manage命令的使用与扩展
2016/04/11 Python
详解Python中的__getitem__方法与slice对象的切片操作
2016/06/27 Python
利用python3随机生成中文字符的实现方法
2017/11/24 Python
Python自动化运维之Ansible定义主机与组规则操作详解
2019/06/13 Python
Django框架 Pagination分页实现代码实例
2019/09/04 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
2020/01/07 Python
Python socket连接中的粘包、精确传输问题实例分析
2020/03/24 Python
欧洲顶级体育电子商务网站:SportsShoes.com
2018/03/27 全球购物
东南亚排名第一的服务市场:kaodim
2019/03/28 全球购物
美国NBA官方商店:NBA Store
2019/04/12 全球购物
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
MYSQL支持事务吗
2013/08/09 面试题
开办化妆品公司创业计划书
2013/12/26 职场文书
2015公司年度工作总结
2015/05/14 职场文书
大学生受助感言
2015/08/01 职场文书
情感电台广播稿
2015/08/18 职场文书
解决spring.thymeleaf.cache=false不起作用的问题
2022/06/10 Java/Android