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小技巧之生成html元素
May 15 Javascript
Html5的placeholder属性(IE兼容)实现代码
Aug 30 Javascript
JavaScript实现邮箱地址自动匹配功能代码
Nov 28 Javascript
jQuery实现动态删除LI的方法
May 30 jQuery
jQuery实现输入框的放大和缩小功能示例
Jul 21 jQuery
微信小程序获取音频时长与实时获取播放进度问题
Aug 28 Javascript
ES6的Fetch异步请求的实现方法
Dec 07 Javascript
JavaScript模板引擎实现原理实例详解
Dec 14 Javascript
详解如何在Vue项目中导出Excel
Apr 19 Javascript
通过循环优化 JavaScript 程序
Jun 24 Javascript
jQuery/JS监听input输入框值变化实例
Oct 17 jQuery
原生js实现的观察者和订阅者模式简单示例
Apr 18 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与javascript的两种交互方式
2006/10/09 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
2016/12/15 PHP
基于php编程规范(详解)
2017/08/17 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
优化网页之快速的呈现我们的网页
2007/06/29 Javascript
jQuery.Validate 使用笔记(jQuery Validation范例 )
2010/06/25 Javascript
使用javascript做的一个随机点名程序
2014/02/13 Javascript
从零学jquery之如何使用回调函数
2014/05/16 Javascript
JavaScript里四舍五入函数round用法实例
2015/04/06 Javascript
javascript精确统计网站访问量实例代码
2015/12/19 Javascript
详解AngularJS中自定义过滤器
2015/12/28 Javascript
javascript+HTML5自定义元素播放焦点图动画
2016/02/21 Javascript
基于JS递归函数细化认识及实用实例(推荐)
2017/08/07 Javascript
node学习笔记之读写文件与开启第一个web服务器操作示例
2019/05/29 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
基于js实现判断浏览器类型代码实例
2020/07/17 Javascript
解决Antd 里面的select 选择框联动触发的问题
2020/10/24 Javascript
python连接mongodb操作数据示例(mongodb数据库配置类)
2013/12/31 Python
Python之父谈Python的未来形式
2016/07/01 Python
一个基于flask的web应用诞生 组织结构调整(7)
2017/04/11 Python
Python数据结构与算法之字典树实现方法示例
2017/12/13 Python
python删除不需要的python文件方法
2018/04/24 Python
python smtplib模块自动收发邮件功能(一)
2018/05/22 Python
解决pytorch-yolov3 train 报错的问题
2020/02/18 Python
Python爬虫之Selenium库的使用方法
2021/01/03 Python
python使用matplotlib的savefig保存时图片保存不完整的问题
2021/01/08 Python
工作失误检讨书范文大全
2014/01/13 职场文书
优秀教师事迹简介
2014/02/02 职场文书
40岁生日感言
2014/02/15 职场文书
大学生社会实践自我鉴定
2014/03/24 职场文书
环保建议书范文
2015/09/14 职场文书
美德少年主要事迹材料
2015/11/04 职场文书
如何用Python搭建gRPC服务
2021/06/30 Python
解决WINDOWS电脑开机后桌面没有任何图标
2022/04/09 数码科技
mysql函数之截取字符串的实现
2022/08/14 MySQL