RTCStatsReport:keys() 方法

keys() 方法是 RTCStatsReport 接口的一个方法,它返回一个新的迭代器 对象,该对象可用于按插入顺序迭代 RTCStatsReport 对象中每个元素的键。

RTCStatsReport 中的键是唯一的字符串 id 值,这些值表示从中派生统计信息的受监控统计对象。

否则,该方法与 Map.prototype.keys() 相同。

语法

js
keys()

返回值

一个新的 可迭代迭代器对象

示例

此示例演示如何使用 keys() 返回的迭代器迭代 RTCStatsReport

给定一个变量 myPeerConnection,它是 RTCPeerConnection 的一个实例,代码使用 await 调用 getStats() 以等待统计报告。然后,它使用 keys() 返回的迭代器,使用 for...of 循环迭代 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

浏览器兼容性

BCD 表格仅在启用了 JavaScript 的浏览器中加载。

另请参阅