隐式绑定


¥Implicit binding

如果正在使用域,则所有新的 EventEmitter 对象(包括 Stream 对象、请求、响应等)将在创建时隐式绑定到活动域。

¥If domains are in use, then all new EventEmitter objects (including Stream objects, requests, responses, etc.) will be implicitly bound to the active domain at the time of their creation.

此外,传递给底层事件循环请求(例如 fs.open() 或其他回调获取方法)的回调将自动绑定到活动域。如果它们抛出,则域将捕获错误。

¥Additionally, callbacks passed to low-level event loop requests (such as to fs.open(), or other callback-taking methods) will automatically be bound to the active domain. If they throw, then the domain will catch the error.

为了防止过多的内存使用,Domain 对象本身没有被隐式地添加为活动域的子域。如果是这样,则阻止请求和响应对象被正确地垃圾收集就太容易了。

¥In order to prevent excessive memory usage, Domain objects themselves are not implicitly added as children of the active domain. If they were, then it would be too easy to prevent request and response objects from being properly garbage collected.

要将 Domain 对象嵌套为父 Domain 的子对象,则必须显式地添加它们。

¥To nest Domain objects as children of a parent Domain they must be explicitly added.

隐式的绑定路由向 Domain'error' 事件抛出错误和 'error' 事件,但没有在 Domain 上注册 EventEmitter。隐式的绑定只处理抛出的错误和 'error' 事件。

¥Implicit binding routes thrown errors and 'error' events to the Domain's 'error' event, but does not register the EventEmitter on the Domain. Implicit binding only takes care of thrown errors and 'error' events.