RTCStatsReport: keys() 方法

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2020 年 1 月⁩ 起,所有主流瀏覽器均已支援。

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

瀏覽器相容性

另見