domain
域。
简化了异步代码的异常处理,可以捕捉try catch无法捕捉的异常。
引入
const domain = require('domain')
domain模块把处理多个不同的IO操作为一个组。
当发生一个错误事件或抛出一个错误时,domain对象会被通知,不会丢失上下文环境,也不会导致程序错误立即退出、
显示绑定和隐式绑定
显示绑定:把不是在domain上下文中定义的变量,以代码的方式绑定到domain。
隐式绑定:把在domain上下文中定义的变量,自动绑定到domain对象。
属性
domain.members:已加入domain对象的域定时器和事件发射器的数组。
方法
domain.run(function):在域的上下文运行提供的函数,隐式的绑定了所有的事件分发器,计时器和底层请求。
doamin.add(emitter):显示的增加事件。
doamin.remove(emitter):删除事件。
domain.bind(callback):返回的函数是一个对于所提供的回调函数的包装函数。当调用这个返回的函数时,所有被抛出的错误都会被导向到这个域的error事件。
domain.intercept(callback):和bind类似,除了捕捉错误外,它还会拦截error对象作为参数传递到这个函数。
domain.enter():进入一个异步调用的上下文,绑定到domain。
domain.exit():退出当前的domain,切换到不同的链的异步调用的上下文中。
domain.dispose():释放一个domain对象,让node进程回收这部分资源。
domain.create():返回一个domain对象。