PressureObserver: observe() Methode

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.

Hinweis: Dieses Feature ist verfügbar in Web Workers, außer in Service Workers.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Die observe() Methode des PressureObserver Interfaces weist den Druckbeobachter an, mit der Beobachtung von Druckänderungen zu beginnen. Nachdem diese Methode aufgerufen wurde, wird der Beobachter seine Callback-Funktion aufrufen, wenn ein Druckdatensatz für die angegebene source beobachtet wird.

Wenn ein übereinstimmender PressureRecord erfasst wird, wird die Callback-Funktion des Druckbeobachters aufgerufen.

Syntax

js
observe(source)
observe(source, options)

Parameter

source

Ein String, der angibt, welche Quelle beobachtet werden soll. Siehe PressureRecord.source für eine Liste der Quellen und PressureObserver.knownSources für eine Liste der vom Benutzeragenten unterstützten Quellen.

options Optional

Ein Objekt zur Konfiguration der Beobachtung mit den folgenden Eigenschaften:

sampleInterval Optional

Eine Zahl, die das angeforderte Abtastintervall in Millisekunden darstellt. Standardmäßig 0, was bedeutet, dass Updates so schnell wie das System es verarbeiten kann, bereitgestellt werden.

Rückgabewert

Ein Promise, das sich mit undefined erfüllt.

Ausnahmen

NotAllowedError DOMException

Wird ausgelöst, wenn die Compute Pressure API durch eine compute-pressure Berechtigungsrichtlinie nicht erlaubt ist.

NotSupportedError DOMException

Wird ausgelöst, wenn der source Parameter nicht eine der unterstützten Quellen für diesen Benutzeragenten ist.

Beispiele

Aktuellen Druck protokollieren

Dieses Beispiel erstellt einen PressureObserver und reagiert, wann immer es eine Druckänderung gibt. Das Abtastintervall ist auf 1000ms eingestellt, was bedeutet, dass Updates höchstens jede Sekunde erfolgen.

js
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
}

Spezifikationen

Specification
Compute Pressure Level 1
# the-observe-method

Browser-Kompatibilität

BCD tables only load in the browser