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 相关文章推荐
用js实现键盘方向键翻页功能的代码
Jun 03 Javascript
javascript 全等号运算符使用说明
May 31 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
Mar 13 Javascript
手把手搭建安装基于windows的Vue.js运行环境
Jun 12 Javascript
微信小程序 Buffer缓冲区的详解
Jul 06 Javascript
React Native使用百度Echarts显示图表的示例代码
Nov 07 Javascript
Webpack的dll功能使用
Jun 28 Javascript
webpack4 处理SCSS的方法示例
Sep 03 Javascript
JS 封装父页面子页面交互接口的实例代码
Jun 25 Javascript
vue控制多行文字展开收起的实现示例
Oct 11 Javascript
原生js实现点击轮播切换图片
Feb 11 Javascript
JavaScript实现捕获鼠标坐标
Apr 12 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
织梦模板标记简介
2007/03/11 PHP
一个简洁的PHP可逆加密函数(分享)
2013/06/06 PHP
php实现图片局部打马赛克的方法
2015/02/11 PHP
php递归遍历删除文件的方法
2015/04/17 PHP
php实现网站文件批量压缩下载功能
2015/10/28 PHP
深入学习微信网址链接解封的防封原理visit_type
2019/08/15 PHP
js类中获取外部函数名的方法与代码
2007/09/12 Javascript
javascript 常用关键字列表集合
2007/12/04 Javascript
使用JQuery和s3captche实现一个水果名字的验证
2009/08/14 Javascript
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
jQuery原型属性和原型方法详解
2015/07/07 Javascript
js实现TAB切换对应不同颜色的代码
2015/08/31 Javascript
JS碰撞运动实现方法详解
2016/12/15 Javascript
深入浅析ES6 Class 中的 super 关键字
2017/10/20 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
2017/11/03 Javascript
nodejs基于express实现文件上传的方法
2018/03/19 NodeJs
vue路由插件之vue-route
2019/06/13 Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
2019/11/05 Javascript
基于JavaScript实现猜数字游戏代码实例
2020/07/30 Javascript
JS获取当前时间戳方法解析
2020/08/29 Javascript
jquery自定义组件实例详解
2020/12/31 jQuery
Python中实现从目录中过滤出指定文件类型的文件
2015/02/02 Python
Python中的自省(反射)详解
2015/06/02 Python
python实现JAVA源代码从ANSI到UTF-8的批量转换方法
2015/08/10 Python
Python中functools模块的常用函数解析
2016/06/30 Python
python实现读取并显示图片的两种方法
2017/01/13 Python
关于python的bottle框架跨域请求报错问题的处理方法
2017/03/19 Python
pandas 空数据处理方法详解
2019/11/02 Python
python图片剪裁代码(图片按四个点坐标剪裁)
2020/03/10 Python
基于python实现查询ip地址来源
2020/06/02 Python
python反编译教程之2048小游戏实例
2021/03/03 Python
阿里健康大药房:阿里自营网上药店
2017/08/01 全球购物
有机童装:Toby Tiger
2018/05/23 全球购物
卡骆驰新加坡官网:Crocs新加坡
2018/06/12 全球购物
2014年图书室工作总结
2014/12/09 职场文书
2015年团支部年度工作总结
2015/05/27 职场文书