promiseHooks.createHook(callbacks)
callbacks
<Object> 要注册的钩子回调init
<Function>init
回调。before
<Function>before
回调。after
<Function>after
回调。settled
<Function>settled
回调。
- 返回: <Function> 用于禁用钩子 钩子回调必须是普通函数。 提供异步函数会抛出异常,因为它会产生无限的微任务循环。
注册要为每个 promise 的不同生命周期事件调用的函数。
回调 init()
/before()
/after()
/settled()
在 promise 的生命周期内为各个事件调用。
所有回调都是可选的。
例如,如果只需要跟踪 promise 的创建,则只需要传入 init
回调。
可以传给 callbacks
的所有函数的细节都在钩子回调章节。
import { promiseHooks } from 'node:v8';
const stopAll = promiseHooks.createHook({
init(promise, parent) {}
});
const { promiseHooks } = require('node:v8');
const stopAll = promiseHooks.createHook({
init(promise, parent) {}
});
callbacks
<Object> The Hook Callbacks to registerinit
<Function> Theinit
callback.before
<Function> Thebefore
callback.after
<Function> Theafter
callback.settled
<Function> Thesettled
callback.
- Returns: <Function> Used for disabling hooks
The hook callbacks must be plain functions. Providing async functions will throw as it would produce an infinite microtask loop.
Registers functions to be called for different lifetime events of each promise.
The callbacks init()
/before()
/after()
/settled()
are called for the
respective events during a promise's lifetime.
All callbacks are optional. For example, if only promise creation needs to
be tracked, then only the init
callback needs to be passed. The
specifics of all functions that can be passed to callbacks
is in the
Hook Callbacks section.
import { promiseHooks } from 'node:v8';
const stopAll = promiseHooks.createHook({
init(promise, parent) {}
});
const { promiseHooks } = require('node:v8');
const stopAll = promiseHooks.createHook({
init(promise, parent) {}
});