RTCStatsReport: keys() method

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.

Phương thức keys() của giao diện RTCStatsReport trả về một đối tượng iterator mới có thể dùng để duyệt qua các khóa của từng phần tử trong đối tượng RTCStatsReport, theo thứ tự chèn.

Các khóa trong RTCStatsReport là các giá trị chuỗi id duy nhất, đại diện cho các đối tượng thống kê được giám sát mà từ đó thống kê được suy ra.

Phương thức này tương tự với Map.prototype.keys().

Cú pháp

js
keys()

Tham số

Không có.

Giá trị trả về

Một đối tượng iterator có thể lặp mới.

Ví dụ

Ví dụ này cho thấy cách duyệt qua một RTCStatsReport bằng iterator do keys() trả về.

Giả sử có biến myPeerConnection, là một thể hiện của RTCPeerConnection, mã gọi getStats() với await để chờ báo cáo thống kê. Sau đó nó dùng vòng lặp for...of, với iterator do keys() trả về, để duyệt qua các ID. Mỗi ID được dùng để lấy dictionary thống kê tương ứng. Các thuộc tính của đối tượng thống kê có typeoutbound-rtp sẽ được ghi ra console (các đối tượng khác bị bỏ qua).

js
const stats = await myPeerConnection.getStats();

for (const id of stats.keys()) {
  // Lấy dictionary liên kết với khóa (id)
  const stat = stats.get(id);
  if (stat.type !== "outbound-rtp") continue;
  Object.keys(stat).forEach((statName) => {
    console.log(`${statName}: ${report[statName]}`);
  });
}

Lưu ý rằng ví dụ này khá gượng ép. Bạn có thể duyệt dễ hơn bằng entries() hoặc values() mà không cần ánh xạ ID sang giá trị. Bạn thậm chí có thể duyệt trực tiếp RTCStatsReport vì nó có phương thức [Symbol.iterator]()!

Tiêu chuẩn

Specification
WebRTC: Real-Time Communication in Browsers
# dom-rtcstatsreport

Tương thích trình duyệt

Xem thêm