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高级程序设计(第3版)学习笔记3 js简单数据类型
Oct 11 Javascript
jquery的live使用注意事项
Feb 18 Javascript
基于jQuery全屏焦点图左右切换插件responsiveslides
Sep 07 Javascript
jQuery Uploadify 上传插件出现Http Error 302 错误的解决办法
Dec 12 Javascript
Vue.js每天必学之过渡与动画
Sep 06 Javascript
JS实现商品筛选功能
Aug 19 Javascript
js实现从左向右滑动式轮播图效果
Jul 07 Javascript
node+express+ejs使用模版引擎做的一个示例demo
Sep 18 Javascript
Node.js从字符串生成文件流的实现方法
Aug 18 Javascript
在weex中愉快的使用scss的方法步骤
Jan 02 Javascript
JavaScript实现省市区三级联动
Feb 13 Javascript
javascript实现一款好看的秒表计时器
Sep 05 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入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
2011/07/14 PHP
解析thinkphp的左右值无限分类
2013/06/20 PHP
Destoon实现多表查询示例
2014/08/21 PHP
PHP中的事务使用实例
2015/05/26 PHP
PHP实现的超长文本分页显示功能示例
2018/06/04 PHP
Swoole扩展的6种模式深入详解
2021/03/04 PHP
Javascript里使用Dom操作Xml
2006/09/20 Javascript
ext监听事件方法[初级篇]
2008/04/27 Javascript
js修改input的type属性及浏览器兼容问题探讨与解决
2013/01/23 Javascript
解决extjs grid 不随窗口大小自适应的改变问题
2014/01/26 Javascript
jquery ajax,ashx,json的用法总结
2014/02/12 Javascript
jQuery1.9.1针对checkbox的调整方法(prop)
2014/05/01 Javascript
cookie的secure属性详解
2015/04/08 Javascript
浅析AMD CMD CommonJS规范--javascript模块化加载学习心得总结
2016/03/16 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
详解javascript获取url信息的常见方法
2016/12/19 Javascript
解决BootStrap Fileinput手机图片上传显示旋转问题
2017/06/01 Javascript
vue-cli+webpack项目 修改项目名称的方法
2018/02/28 Javascript
微信小程序实现两个页面传值的方法分析
2018/12/11 Javascript
基于AngularJS拖拽插件ngDraggable.js实现拖拽排序功能
2019/04/02 Javascript
vue3+typescript实现图片懒加载插件
2020/10/26 Javascript
[47:02]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS paiN
2018/03/30 DOTA
Python科学计算之Pandas详解
2017/01/15 Python
对python实现模板生成脚本的方法详解
2019/01/30 Python
通过实例解析Python调用json模块
2019/12/11 Python
Python中常用的高阶函数实例详解
2020/02/21 Python
python求解汉诺塔游戏
2020/07/09 Python
印度最大的网上花店:Ferns N Petals(鲜花、礼品和蛋糕)
2017/10/16 全球购物
英国第一的滑雪服装和装备零售商:Snow+Rock
2020/02/01 全球购物
教师读书活动总结
2014/05/07 职场文书
党员学习群众路线心得体会
2014/11/04 职场文书
考试没考好检讨书(精选篇)
2014/11/16 职场文书
2015年安全教育月活动总结
2015/03/26 职场文书
《叶问2》观后感
2015/06/15 职场文书
2015年校医个人工作总结
2015/07/24 职场文书
MySQL生成千万测试数据以及遇到的问题
2022/08/05 MySQL