There are cases (for example, resolving promises) where it is necessary to have the equivalent
of the scope associated with a callback in place when making certain Node-API calls. If there
is no other script on the stack the napi_open_callback_scope and napi_close_callback_scope
functions can be used to open/close the required scope.
When nesting scopes, there are cases where a handle from an inner scope needs to live
beyond the lifespan of that scope. Node-API supports an ‘escapable scope’ in order to
support this case. An escapable scope allows one handle to be ‘promoted’ so that it
‘escapes’ the current scope and the lifespan of the handle changes from the current scope
to that of the outer scope.
Node-API provides the ability to establish a new ‘scope’ to which newly created handles
will be associated. Once those handles are no longer required, the scope can be ‘closed’
and any handles associated with the scope are invalidated. The methods available to
open/close scopes are napi_open_handle_scope and napi_close_handle_scope.