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 DOM 学习第七章 表单的扩展
Feb 19 Javascript
js将long日期格式转换为标准日期格式实现思路
Apr 07 Javascript
javascript计时器详解
Feb 28 Javascript
运用js教你轻松制作html音乐播放器
Apr 17 Javascript
移动端脚本框架Hammer.js
Dec 15 Javascript
Vue中的v-cloak使用解读
Mar 27 Javascript
在ES5与ES6环境下处理函数默认参数的实现方法
May 13 Javascript
微信小程序授权登录及解密unionId出错的方法
Sep 26 Javascript
学习jQuery中的noConflict()用法
Sep 28 jQuery
深入理解使用Vue实现Context-Menu的思考与总结
Mar 09 Javascript
JavaScript对象属性操作实例解析
Feb 04 Javascript
JavaScript实现省市区三级联动
Feb 13 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
如何冲泡挂耳包咖啡?技巧是什么
2021/03/04 冲泡冲煮
PHP默认安装产生系统漏洞
2006/10/09 PHP
php 动态执行带有参数的类方法
2009/04/10 PHP
php 字符转义 注意事项
2009/05/27 PHP
Cookie 小记
2010/04/01 Javascript
javascript 触发HTML元素绑定的函数
2010/09/11 Javascript
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
JavaScript高级程序设计(第3版)学习笔记4 js运算符和操作符
2012/10/11 Javascript
通过jQuery源码学习javascript(一)
2012/12/27 Javascript
javascript自定义的addClass()方法
2014/05/28 Javascript
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
基于vue实现多引擎搜索及关键字提示
2017/03/16 Javascript
vue router-link传参以及参数的使用实例
2017/11/10 Javascript
基于js中的存储键值对以及注意事项介绍
2018/03/30 Javascript
微信小程序实现自上而下字幕滚动
2018/07/14 Javascript
小白教程|一小时上手最流行的前端框架vue(推荐)
2019/04/10 Javascript
vue-cli脚手架引入弹出层layer插件的几种方法
2019/06/24 Javascript
浅谈Vue 函数式组件的使用技巧
2020/06/16 Javascript
Python中使用装饰器和元编程实现结构体类实例
2015/01/28 Python
python创建临时文件夹的方法
2015/07/06 Python
Djang中静态文件配置方法
2015/07/30 Python
Python 多进程并发操作中进程池Pool的实例
2017/11/01 Python
python读取中文txt文本的方法
2018/04/12 Python
在cmder下安装ipython以及环境的搭建
2018/10/19 Python
在pycharm上mongodb配置及可视化设置方法
2018/11/30 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
2018/12/21 Python
Python基础学习之时间转换函数用法详解
2019/06/18 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
2019/08/31 Python
俄罗斯家居用品购物网站:Евродом
2020/11/21 全球购物
平面设计自荐信
2013/10/07 职场文书
酒店员工职业生涯规划
2014/02/25 职场文书
Nginx优化服务之网页压缩的实现方法
2021/03/31 Servers
nginx处理http请求实现过程解析
2021/03/31 Servers
python基于tkinter制作m3u8视频下载工具
2021/04/24 Python
解读Vue组件注册方式
2021/05/15 Vue.js
浅析CSS在DevTools 中架构演变
2021/10/05 HTML / CSS