Bun

class

perf_hooks.PerformanceObserver

  • asyncId(): number;
    @returns

    The unique asyncId assigned to the resource.

  • bind<Func extends (...args: any[]) => any>(
    fn: Func
    ): Func;

    Binds the given function to execute to this AsyncResource's scope.

    @param fn

    The function to bind to the current AsyncResource.

  • disconnect(): void;

    Disconnects the PerformanceObserver instance from all notifications.

  • emitDestroy(): this;

    Call all destroy hooks. This should only ever be called once. An error will be thrown if it is called more than once. This must be manually called. If the resource is left to be collected by the GC then the destroy hooks will never be called.

    @returns

    A reference to asyncResource.

  • options: { buffered: boolean; entryTypes: readonly EntryType[] } | { buffered: boolean; type: EntryType }
    ): void;

    Subscribes the PerformanceObserver instance to notifications of new PerformanceEntry instances identified either by options.entryTypes or options.type:

    import {
      performance,
      PerformanceObserver,
    } from 'node:perf_hooks';
    
    const obs = new PerformanceObserver((list, observer) => {
      // Called once asynchronously. `list` contains three items.
    });
    obs.observe({ type: 'mark' });
    
    for (let n = 0; n < 3; n++)
      performance.mark(`test${n}`);
    
  • runInAsyncScope<This, Result>(
    fn: (this: This, ...args: any[]) => Result,
    thisArg?: This,
    ...args: any[]
    ): Result;

    Call the provided function with the provided arguments in the execution context of the async resource. This will establish the context, trigger the AsyncHooks before callbacks, call the function, trigger the AsyncHooks after callbacks, and then restore the original execution context.

    @param fn

    The function to call in the execution context of this async resource.

    @param thisArg

    The receiver to be used for the function call.

    @param args

    Optional arguments to pass to the function.

  • @returns

    Current list of entries stored in the performance observer, emptying it out.

  • triggerAsyncId(): number;
    @returns

    The same triggerAsyncId that is passed to the AsyncResource constructor.

  • static bind<Func extends (this: ThisArg, ...args: any[]) => any, ThisArg>(
    fn: Func,
    type?: string,
    thisArg?: ThisArg
    ): Func;

    Binds the given function to the current execution context.

    @param fn

    The function to bind to the current execution context.

    @param type

    An optional name to associate with the underlying AsyncResource.