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判断浏览器的比较全的代码
Feb 13 Javascript
javascript的键盘控制事件说明
Apr 15 Javascript
JS 判断代码全收集
Apr 28 Javascript
js二级地域选择的实现方法
Jun 17 Javascript
js动态修改表格行colspan列跨度的方法
Mar 30 Javascript
javascript实现动态改变层大小的方法
May 14 Javascript
详解用node.js实现简单的反向代理
Jun 26 Javascript
JavaScript之事件委托实例(附原生js和jQuery代码)
Jul 22 jQuery
npm 常用命令详解(小结)
Jan 17 Javascript
vue input输入框关键字筛选检索列表数据展示
Oct 26 Javascript
javascript 原型与原型链的理解及实例分析
Nov 23 Javascript
JS PHP字符串截取函数实现原理解析
Aug 29 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
一个程序下载的管理程序(四)
2006/10/09 PHP
CodeIgniter安全相关设置汇总
2014/07/03 PHP
Mac OS下配置PHP+MySql环境
2015/02/25 PHP
php查询mysql数据库并将结果保存到数组的方法
2015/03/18 PHP
laravel框架实现后台登录、退出功能示例
2019/10/31 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
发一个自己用JS写的实用看图工具实现代码
2008/07/26 Javascript
JS array 数组详解
2009/03/22 Javascript
原生JS实现加入收藏夹的代码
2013/10/24 Javascript
node+express+jade制作简单网站指南
2014/11/26 Javascript
Lua表达式和控制结构学习笔记
2014/12/15 Javascript
浅谈类似于(function(){}).call()的js语句
2015/03/30 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
2015/09/06 Javascript
解决jQuery使用JSONP时产生的错误
2015/12/02 Javascript
深入理解JavaScript程序中内存泄漏
2016/03/17 Javascript
React.js入门实例教程之创建hello world 的5种方式
2016/05/11 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
2016/08/08 Javascript
Linux使用Node.js建立访问静态网页的服务实例详解
2017/03/21 Javascript
使用vue制作FullPage页面滚动效果
2017/08/21 Javascript
vue移动端UI框架实现QQ侧边菜单组件
2018/03/09 Javascript
React 源码中的依赖注入方法
2018/11/07 Javascript
VUE解决 v-html不能触发点击事件的问题
2019/10/28 Javascript
[03:47]2015国际邀请赛第三日现场精彩回顾
2015/08/08 DOTA
[00:11]战神迅矛
2019/03/06 DOTA
Python读大数据txt
2016/03/28 Python
基于python3 类的属性、方法、封装、继承实例讲解
2017/09/19 Python
python实现txt文件格式转换为arff格式
2018/05/31 Python
对python周期性定时器的示例详解
2019/02/19 Python
用Python识别人脸,人种等各种信息
2019/07/15 Python
使用python实现滑动验证码功能
2019/08/05 Python
解决python-docx打包之后找不到default.docx的问题
2020/02/13 Python
获取python运行输出的数据并解析存为dataFrame实例
2020/07/07 Python
Ubuntu20下的Django安装的方法步骤
2021/01/24 Python
一款纯css3实现的颜色渐变按钮的代码教程
2014/11/12 HTML / CSS
Ted Baker英国官网:男士和女士服装及配件
2017/03/13 全球购物
音乐教师求职信
2014/06/28 职场文书