files/en-us/web/api/pressureobserver/observe/index.md
{{APIRef("Compute Pressure API")}}{{SeeCompatTable}}{{AvailableInWorkers("window_and_worker_except_service")}}{{securecontext_header}}
The observe() method of the {{domxref("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 {{domxref("PressureRecord")}} is obtained, the pressure observer's callback function is invoked.
observe(source)
observe(source, options)
source
options {{optional_inline}}
sampleInterval {{optional_inline}}
A {{jsxref("Promise")}} that fulfils with {{jsxref("undefined")}}.
NotAllowedError {{domxref("DOMException")}}
NotSupportedError {{domxref("DOMException")}}
source parameter is not one of the supported sources for this user agent.This example creates a {{domxref("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}}
{{Compat}}