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 相关文章推荐
基于JQuery的Select选择框的华丽变身
Aug 23 Javascript
一个简单的网站访问JS计数器 刷新1次加1次访问
Sep 20 Javascript
JS.getTextContent(element,preformatted)使用介绍
Sep 21 Javascript
jQuery实现DIV层收缩展开的方法
Feb 27 Javascript
jQuery基于图层模仿五星星评价功能的方法
May 07 Javascript
基于JavaScript实现移除(删除)数组中指定元素
Jan 04 Javascript
JS实现图片剪裁并预览效果
Aug 12 Javascript
使用JS批量选中功能实现更改数据库中的status状态值(批量展示)
Nov 22 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
May 12 Javascript
微信小程序之电影影评小程序制作代码
Aug 03 Javascript
vue实现图片滚动的示例代码(类似走马灯效果)
Mar 03 Javascript
JavaScript forEach中return失效问题解决方案
Jun 01 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 shell命令合并图片的代码
2011/06/23 PHP
PHP中PDO的错误处理
2011/09/04 PHP
PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题
2015/11/30 PHP
php遍历、读取文件夹中图片并分页显示图片的方法
2016/11/15 PHP
Yii框架实现对数据库的CURD操作示例
2019/09/03 PHP
javascript while语句和do while语句的区别分析
2007/12/08 Javascript
JavaScript 学习笔记(十五)
2010/01/28 Javascript
json的前台操作和后台操作实现代码
2012/01/20 Javascript
js修改input的type属性问题探讨
2013/10/12 Javascript
jQuery实现在下拉列表选择时获取json数据的方法
2015/04/16 Javascript
Nodejs学习笔记之入门篇
2015/04/16 NodeJs
JS实现点击按钮后框架内载入不同网页的方法
2015/05/05 Javascript
js实现文本框选中的方法
2015/05/26 Javascript
Highcharts学习之坐标轴
2016/08/02 Javascript
jQuery中slidedown与slideup方法用法示例
2016/09/16 Javascript
jquery+css3问卷答题卡翻页动画效果示例
2016/10/26 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
2017/11/06 Javascript
前端防止用户重复提交js实现代码示例
2018/09/07 Javascript
[51:10]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python常规方法实现数组的全排列
2015/03/17 Python
Python cookbook(数据结构与算法)筛选及提取序列中元素的方法
2018/03/19 Python
python实现两个dict合并与计算操作示例
2019/07/01 Python
详解Python中第三方库Faker
2020/09/25 Python
纽约服装和生活方式品牌:Saturdays NYC
2017/08/13 全球购物
什么是java序列化,如何实现java序列化
2012/11/14 面试题
.NET方向面试题
2014/11/20 面试题
我未来的职业规划范文
2014/01/11 职场文书
九年级物理教学反思
2014/01/29 职场文书
中文专业学生自我评价范文
2014/02/06 职场文书
银行服务感言
2014/03/01 职场文书
擅自离岗检讨书
2014/09/12 职场文书
承德避暑山庄导游词
2015/02/03 职场文书
卖车协议书范文
2016/03/23 职场文书
保安辞职申请书应该怎么写?
2019/07/15 职场文书
python中的None与NULL用法说明
2021/05/25 Python
Python Numpy库的超详细教程
2022/04/06 Python