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 durch die Schlüssel für jedes Element im RTCStatsReport
Objekt in Einfügereihenfolge zu iterieren.
Die Schlüssel im RTCStatsReport
sind eindeutige Zeichenfolgen-id
-Werte, die die überwachten Statistikobjekte repräsentieren, aus denen die Statistiken abgeleitet werden.
Die Methode ist ansonsten identisch mit Map.prototype.keys()
.
Syntax
keys()
Parameter
Keine.
Rückgabewert
Ein neues iterierbares Iterator-Objekt.
Beispiele
Dieses Beispiel zeigt, wie man durch ein RTCStatsReport
unter Verwendung des von keys()
zurückgegebenen Iterators iteriert.
Angenommen, eine Variable myPeerConnection
ist eine Instanz von RTCPeerConnection
, der Code ruft getStats()
mit await
auf, um auf den Statistikbericht zu warten. Dann wird eine for...of Schleife verwendet, mit dem von keys()
zurückgegebenen Iterator, um durch die IDs zu iterieren. Jede ID wird verwendet, um das entsprechende Statistik-Dictionary abzurufen. Die Eigenschaften von Statistikobjekten mit dem type
outbound-rtp
werden in der Konsole protokolliert (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 einfacher mit entries()
oder values()
iterieren und müssten die ID nicht einem Wert zuordnen. Sie können sogar das RTCStatsReport
selbst iterieren, da es die [Symbol.iterator]()
Methode hat!
Spezifikationen
Specification |
---|
WebRTC: Real-Time Communication in Browsers # dom-rtcstatsreport |