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 new 需不需要继续使用
Jul 02 Javascript
ExtJs 表单提交登陆实现代码
Aug 19 Javascript
ko knockoutjs动态属性绑定技巧应用
Nov 14 Javascript
js与css实现弹出层覆盖整个页面的方法
Dec 13 Javascript
input输入框鼠标焦点提示信息
Mar 17 Javascript
输入框点击时边框变色效果的实现方法
Dec 26 Javascript
canvas实现十二星座星空图
Feb 14 Javascript
详解Angular路由 ng-route和ui-router的区别
May 22 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
Aug 10 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
Jul 28 Javascript
浅谈vant组件Picker 选择器选单选问题
Nov 04 Javascript
vue如何实现关闭对话框后刷新列表
Apr 08 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
PHP入门
2006/10/09 PHP
《APMServ 5.1.2》使用图解
2006/10/23 PHP
PHP中用header图片地址 简单隐藏图片源地址
2008/04/09 PHP
php 什么是PEAR?(第二篇)
2009/03/19 PHP
php防攻击代码升级版
2010/12/29 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
PHP实现普通hash分布式算法简单示例
2018/08/06 PHP
国外Lightbox v2.03.3 最新版 下载
2007/10/17 Javascript
不同浏览器对回车提交表单的处理办法
2010/02/13 Javascript
jquery简单瀑布流实现原理及ie8下测试代码
2013/01/23 Javascript
jquery实现textarea输入字符控制(仿微博输入控制字符)
2013/04/26 Javascript
js确认删除对话框效果的示例代码
2014/02/20 Javascript
DOM操作一些常用的属性汇总
2015/03/13 Javascript
谈谈对offsetleft兼容性的理解
2015/11/11 Javascript
js实现简单排列组合的方法
2016/01/27 Javascript
浅析javascript函数表达式
2016/02/10 Javascript
JavaScript 中 apply 、call 的详解
2017/03/21 Javascript
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
2017/07/12 jQuery
vue-model实现简易计算器
2020/08/17 Javascript
vue前端和Django后端如何查询一定时间段内的数据
2021/02/28 Vue.js
Python深入学习之装饰器
2014/08/31 Python
mac系统安装Python3初体验
2018/01/02 Python
用python实现百度翻译的示例代码
2018/03/09 Python
Python openpyxl 遍历所有sheet 查找特定字符串的方法
2018/12/10 Python
解决pycharm最左侧Tool Buttons显示不全的问题
2019/12/17 Python
Transpose 数组行列转置的限制方式
2020/02/11 Python
windows支持哪个版本的python
2020/07/03 Python
详解使用双缓存解决Canvas clearRect引起的闪屏问题
2019/04/29 HTML / CSS
EMU Australia澳大利亚官网:澳大利亚本土雪地靴品牌
2019/07/24 全球购物
2014市府办领导班子“四风问题”对照检查材料思想汇报
2014/09/24 职场文书
户籍证明模板
2014/09/28 职场文书
领导干部作风建设剖析材料
2014/10/11 职场文书
2016年5月份红领巾广播稿
2015/12/21 职场文书
2019年大学生学年自我鉴定!
2019/03/25 职场文书
2019财务转正述职报告
2019/06/27 职场文书
Win11查看设备管理器
2022/04/19 数码科技