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 文档碎片
Jul 13 Javascript
Javascript alert消息换行的方法
Aug 07 Javascript
基于jquery实现无限级树形菜单
Mar 22 Javascript
深入理解Javascript中的自执行匿名函数
Jun 03 Javascript
JS针对浏览器窗口关闭事件的监听方法集锦
Jun 24 Javascript
41个Web开发者必须收藏的JavaScript实用技巧
Jul 22 Javascript
jQuery实现鼠标滑过图片移动特效
Dec 08 Javascript
vue-cli + sass 的正确打开方式图文详解
Oct 27 Javascript
Angularjs渲染的 using 指令的星级评分系统示例
Nov 09 Javascript
原生JS实现获取及修改CSS样式的方法
Sep 04 Javascript
JS面向对象之多选框实现
Jan 17 Javascript
vue实现登录功能
Dec 31 Vue.js
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
php5.2.0内存管理改进
2007/01/22 PHP
PHP 编写的 25个游戏脚本
2009/05/11 PHP
关于PHP模板Smarty的初级使用方法以及心得分享
2013/06/21 PHP
浅谈php+phpStorm+xdebug配置方法
2015/09/17 PHP
PHP语法小结之基础和变量
2015/11/22 PHP
PHP INT类型在内存中占字节详解
2019/07/20 PHP
总结一些js自定义的函数
2006/08/05 Javascript
获取网站跟路径的javascript代码(站点及虚拟目录)
2009/10/20 Javascript
另一个javascript小测验(代码集合)
2011/07/27 Javascript
前台js改变Session的值(用ajax实现)
2012/12/28 Javascript
js监听键盘事件示例代码
2013/07/26 Javascript
JQuery的自定义事件代码,触发,绑定简单实例
2013/08/01 Javascript
Jquery 动态生成表格示例代码
2013/12/24 Javascript
JS判断网页广告是否被浏览器拦截过滤的代码
2015/04/05 Javascript
javascript数组克隆简单实现方法
2015/12/16 Javascript
分享自己用JS做的扫雷小游戏
2016/02/17 Javascript
JavaScript事件处理的方式(三种)
2016/04/26 Javascript
JavaScript中清空数组的方法总结
2016/12/02 Javascript
jQuery轻松实现无缝轮播效果
2017/03/22 jQuery
[js高手之路]寄生组合式继承的优势详解
2017/08/28 Javascript
Angular搜索 过滤 批量删除 添加 表单验证功能集锦(实例代码)
2017/10/25 Javascript
分享ES6的7个实用技巧
2018/01/18 Javascript
实例详解带参数的 npm script
2019/05/28 Javascript
基于Layui自定义模块的使用方法详解
2019/09/14 Javascript
JS校验与最终登陆界面功能完整示例
2020/01/13 Javascript
JavaScript实现Tab标签页切换的最简便方式(4种)
2020/06/28 Javascript
浅谈vue中$bus的使用和涉及到的问题
2020/07/28 Javascript
jQuery实现查看图片功能
2020/12/01 jQuery
[08:40]Navi Vs Newbee
2018/06/07 DOTA
[01:07:57]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第二场 1月19日
2021/03/11 DOTA
Python中动态创建类实例的方法
2017/03/24 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
2018/12/12 Python
django项目简单调取百度翻译接口的方法
2019/08/06 Python
联想英国官网:Lenovo英国
2019/07/17 全球购物
小学生班会演讲稿
2014/01/09 职场文书
女生节标语
2014/06/26 职场文书