performanceObserver.observe(options)
options<Object>entryTypes<string[]> 标识观察者感兴趣的PerformanceEntry实例类型的字符串数组。 如果未提供,将抛出错误。buffered<boolean> 如果为 true,则通知回调将使用setImmediate()调用,多个PerformanceEntry实例通知将在内部缓冲。 如果为false,则通知将是即时和同步的。 默认值:false。
为 PerformanceObserver 实例订阅由 options.entryTypes 标识的新 PerformanceEntry 实例的通知。
当 options.buffered 为 false 时,则 callback 会为每个 PerformanceEntry 实例调用一次:
const {
performance,
PerformanceObserver
} = require('perf_hooks');
const obs = new PerformanceObserver((list, observer) => {
// 同步地调用 3 次。`list` 包含一项。
});
obs.observe({ entryTypes: ['mark'] });
for (let n = 0; n < 3; n++)
performance.mark(`test${n}`);const {
performance,
PerformanceObserver
} = require('perf_hooks');
const obs = new PerformanceObserver((list, observer) => {
// 调用一次。`list` 包含三个条目。
});
obs.observe({ entryTypes: ['mark'], buffered: true });
for (let n = 0; n < 3; n++)
performance.mark(`test${n}`);options<Object>entryTypes<string[]> An array of strings identifying the types ofPerformanceEntryinstances the observer is interested in. If not provided an error will be thrown.buffered<boolean> If true, the notification callback will be called usingsetImmediate()and multiplePerformanceEntryinstance notifications will be buffered internally. Iffalse, notifications will be immediate and synchronous. Default:false.
Subscribes the PerformanceObserver instance to notifications of new
PerformanceEntry instances identified by options.entryTypes.
When options.buffered is false, the callback will be invoked once for
every PerformanceEntry instance:
const {
performance,
PerformanceObserver
} = require('perf_hooks');
const obs = new PerformanceObserver((list, observer) => {
// Called three times synchronously. `list` contains one item.
});
obs.observe({ entryTypes: ['mark'] });
for (let n = 0; n < 3; n++)
performance.mark(`test${n}`);const {
performance,
PerformanceObserver
} = require('perf_hooks');
const obs = new PerformanceObserver((list, observer) => {
// Called once. `list` contains three items.
});
obs.observe({ entryTypes: ['mark'], buffered: true });
for (let n = 0; n < 3; n++)
performance.mark(`test${n}`);