RTCStatsReport: keys() 方法
RTCStatsReport 接口的 keys() 方法返回一个新的迭代器对象,该对象可用于按插入顺序遍历 RTCStatsReport 对象中每个元素的键。
RTCStatsReport 中的键是唯一的字符串 id 值,这些值表示从中派生统计信息的受监控统计信息对象。
此方法与其他方面与 Map.prototype.keys() 相同。
语法
js
keys()
参数
无。
返回值
一个新的可迭代迭代器对象。
示例
此示例展示了如何使用 keys() 返回的迭代器遍历 RTCStatsReport。
给定一个变量 myPeerConnection,它是 RTCPeerConnection 的一个实例,该代码会调用 await 版本的 getStats() 来等待统计信息报告。然后,它使用 for...of 循环和 keys() 返回的迭代器来遍历 ID。每个 ID 都用于获取相应的统计信息字典。类型为 outbound-rtp 的统计信息对象的属性将被记录到控制台(其他对象将被丢弃)。
js
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]}`);
});
}
请注意,此示例有些牵强。您可以更轻松地使用 entries() 或 values() 进行迭代,而不必将 ID 映射到值。您甚至可以直接迭代 RTCStatsReport,因为它具有 [Symbol.iterator]() 方法!
规范
| 规范 |
|---|
| WebRTC:浏览器中的实时通信 # dom-rtcstatsreport |
浏览器兼容性
加载中…