PressureObserver: observe() method
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
Note: This feature is available in Web Workers, except for Service Workers.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
The observe()
method of the PressureObserver
interface tells the pressure observer to start observing pressure changes. After this method is called, the observer will call its callback function when a pressure record for the specified source
is observed.
When a matching PressureRecord
is obtained, the pressure observer's callback function is invoked.
Syntax
observe(source)
observe(source, options)
Parameters
source
-
A string specifying which
source
to observe. SeePressureRecord.source
for a list of sources andPressureObserver.knownSources
for a list of sources the user agent supports. options
Optional-
An object to configure observation with the following properties:
sampleInterval
Optional-
A number representing the requested sampling interval expressed in milliseconds. Defaults to 0 meaning it will get updates as fast as the system can handle it.
Return value
Exceptions
NotAllowedError
DOMException
-
Thrown if the Compute Pressure API is disallowed by a
compute-pressure
Permissions Policy. NotSupportedError
DOMException
-
Thrown if the
source
parameter is not one of the supported sources for this user agent.
Examples
Log current pressure
This example creates a PressureObserver
and takes action whenever there is a pressure change. The sample interval is set to 1000ms, meaning that there will be updates at most every second.
function callback(records) {
const lastRecord = records[records.length - 1];
console.log(`Current pressure ${lastRecord.state}`);
if (lastRecord.state === "critical") {
// disable video feeds
} else if (lastRecord.state === "serious") {
// disable video filter effects
} else {
// enable all video feeds and filter effects
}
}
try {
const observer = new PressureObserver(callback);
await observer.observe("cpu", {
sampleInterval: 1000, // 1000ms
});
} catch (error) {
// report error setting up the observer
}
Specifications
Specification |
---|
Compute Pressure Level 1 # the-observe-method |
Browser compatibility
BCD tables only load in the browser