RTCStatsReport:forEach() 方法

forEach()RTCStatsReport 接口的一个方法,它会为 RTCStatsReport 对象中的每个键/值对执行一次提供的函数,顺序为插入顺序。

键是来自监视的统计对象(从中派生统计信息)的唯一 id 值,关联的值是 统计字典对象

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

语法

js
forEach(callbackFn)
forEach(callbackFn, thisArg)

参数

callbackFn

要为报表中的每个条目执行的函数。该函数将以下参数作为参数调用

报表

每次迭代的统计报表。这可以是任何 统计字典类型

id

一个唯一字符串,用于识别从中派生统计信息的监视对象。

映射

正在迭代的报表。

thisArg 可选

在执行 callbackFn 时用作 this 的值。

返回值

示例

给定一个变量 myPeerConnection,它是 RTCPeerConnection 的一个实例,代码使用 await 调用 getStats() 以等待统计报表。然后,它使用 RTCStatsReport.forEach() 迭代报表,并过滤字典,只保留那些 typeinbound-rtpkindvideo 的报表。对于匹配的字典,它记录入站视频的 framesPerSecond 属性。

js
const stats = await myPeerConnection.getStats();

stats.forEach((report) => {
  if (report.type === "inbound-rtp" && report.kind === "video") {
    // Log the frame rate
    console.log(report.framesPerSecond);
  }
});

规范

规范
WebRTC:浏览器中的实时通信
# dom-rtcstatsreport

浏览器兼容性

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

另请参阅