RTCStatsReport: keys() Methode
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
Die keys()
Methode der RTCStatsReport
Schnittstelle gibt ein neues Iterator-Objekt zurück, das verwendet werden kann, um in der Einfügereihenfolge durch die Schlüssel für jedes Element im RTCStatsReport
Objekt zu iterieren.
Die Schlüssel im RTCStatsReport
sind eindeutige Zeichenfolgen-id
-Werte, die die überwachten Statistikobjekte darstellen, aus denen die Statistiken abgeleitet sind.
Die Methode ist ansonsten die gleiche wie Map.prototype.keys()
.
Syntax
keys()
Rückgabewert
Ein neues iterables Iterator-Objekt.
Beispiele
Dieses Beispiel zeigt, wie man mit dem von keys()
zurückgegebenen Iterator durch ein RTCStatsReport
iteriert.
Angenommen, eine Variable myPeerConnection
, die eine Instanz von RTCPeerConnection
ist, ruft der Code getStats()
mit await
auf, um auf den Statistikbericht zu warten.
Er verwendet dann eine for...of Schleife mit dem von keys()
zurückgegebenen Iterator, um durch die IDs zu iterieren.
Jede ID wird verwendet, um das entsprechende Statistik-Wörterbuch zu erhalten.
Die Eigenschaften von Statistikobjekten mit dem type
outbound-rtp
werden in die Konsole geloggt (andere Objekte werden verworfen).
const stats = await myPeerConnection.getStats();
for (const id of stats.keys()) {
// Get dictionary associated with key (id)
const stat = stats.get(id);
if (stat.type !== "outbound-rtp") continue;
Object.keys(stat).forEach((statName) => {
console.log(`${statName}: ${report[statName]}`);
});
}
Beachten Sie, dass dieses Beispiel etwas konstruiert ist.
Sie könnten leichter mit entries()
oder values()
iterieren, ohne die ID einem Wert zuordnen zu müssen.
Sie können sogar direkt durch das RTCStatsReport
selbst iterieren, da es die [Symbol.iterator]()
Methode besitzt!
Spezifikationen
Specification |
---|
WebRTC: Real-Time Communication in Browsers # dom-rtcstatsreport |