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之ESC(第二类混淆)
May 06 Javascript
javascript 节点遍历函数
Mar 28 Javascript
在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
Jun 02 Javascript
jQuery 获取、设置HTML或TEXT内容的两种方法
May 23 Javascript
关于JavaScript的变量的数据类型的判断方法
Aug 14 Javascript
详解javascript中的事件处理
Nov 06 Javascript
有趣的bootstrap走动进度条
Dec 01 Javascript
vue2.0父子组件及非父子组件之间的通信方法
Jan 21 Javascript
微信小程序注册60s倒计时功能 使用JS实现注册60s倒计时功能
Aug 16 Javascript
React Native日期时间选择组件的示例代码
Apr 27 Javascript
Vue Router的懒加载路径的解决方法
Jun 21 Javascript
layui table 参数设置方法
Aug 14 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学习之简单计算器实现代码
2011/06/09 PHP
php广告加载类用法实例
2014/09/23 PHP
php中的单引号、双引号和转义字符详解
2017/02/16 PHP
[对联广告] JS脚本类
2006/08/27 Javascript
JQUERY dialog的用法详细解析
2013/12/19 Javascript
使用jQuery实现星级评分代码分享
2014/12/09 Javascript
JavaScript中实现sprintf、printf函数
2015/01/27 Javascript
jQuery选择器之基本选择器与层次选择器
2015/03/03 Javascript
jQuery设置聚焦并使光标位置在文字最后的实现方法
2016/08/02 Javascript
nodejs socket服务端和客户端简单通信功能
2017/09/14 NodeJs
在Vue组件中使用 TypeScript的方法
2018/02/28 Javascript
在create-react-app中使用css modules的示例代码
2018/07/31 Javascript
vue写h5页面的方法总结
2019/02/12 Javascript
vue遍历对象中的数组取值示例
2019/11/07 Javascript
[52:12]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
Python 自动安装 Rising 杀毒软件
2009/04/24 Python
python一键升级所有pip package的方法
2017/01/16 Python
python3大文件解压和基本操作
2017/12/15 Python
Python实现的从右到左字符串替换方法示例
2018/07/06 Python
python仿抖音表白神器
2019/04/08 Python
python 计算概率密度、累计分布、逆函数的例子
2020/02/25 Python
使用Keras预训练好的模型进行目标类别预测详解
2020/06/27 Python
pytorch中index_select()的用法详解
2021/01/06 Python
推荐WEB开发者最佳HTML5和CSS3代码生成器
2015/11/24 HTML / CSS
HTML5 3D衣服摇摆动画特效
2016/03/17 HTML / CSS
Html5写一个简单的俄罗斯方块小游戏
2019/12/03 HTML / CSS
联想香港官方网站及网店:Lenovo香港
2018/04/13 全球购物
2014年单位植树节活动方案
2014/03/23 职场文书
党员民主生活会对照检查材料思想汇报
2014/09/28 职场文书
我的长征观后感
2015/06/09 职场文书
2016入党积极分子心得体会
2016/01/06 职场文书
《正比例》教学反思
2016/02/23 职场文书
面试必问:圣杯布局和双飞翼布局的区别
2021/05/13 HTML / CSS
pytorch 如何使用amp进行混合精度训练
2021/05/24 Python
健身房被搭讪?用python写了个小米计时器助人为乐
2021/06/08 Python
Java 语言中Object 类和System 类详解
2021/07/07 Java/Android