FileSystemObserver: observe() method

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

Phương thức observe() của giao diện FileSystemObserver yêu cầu observer bắt đầu quan sát các thay đổi đối với tệp hoặc thư mục được cho.

Cú pháp

js
observe(handle)
observe(handle, options)

Tham số

handle

Handle của mục nhập hệ thống tệp đại diện cho tệp hoặc thư mục cần quan sát.

options Optional

Đối tượng chỉ định các tùy chọn cho lệnh gọi observe(). Có thể chứa các thuộc tính sau:

recursive

Giá trị boolean xác định xem bạn có muốn quan sát các thay đổi đối với thư mục một cách đệ quy không. Nếu đặt là true, các thay đổi được quan sát trong chính thư mục đó và tất cả các thư mục con và tệp bên trong. Nếu đặt là false, các thay đổi chỉ được quan sát trong chính thư mục đó và các tệp được chứa trực tiếp (tức là các tệp trong thư mục con bị loại trừ). Mặc định là false.

Thuộc tính này không có hiệu lực nếu handle đại diện cho một tệp.

Giá trị trả về

Một Promise phân giải thành undefined.

Ngoại lệ

NotFoundError DOMException

Được ném ra nếu tệp hoặc thư mục được đại diện bởi handle không thể tìm thấy.

Ví dụ

Quan sát tệp hoặc thư mục

Giả sử một phiên bản FileSystemObserver đang có sẵn, bạn có thể bắt đầu quan sát các thay đổi đối với mục nhập hệ thống tệp bằng cách gọi observe().

Bạn có thể quan sát tệp hoặc thư mục trong hệ thống tệp người dùng quan sát được hoặc Hệ thống tệp riêng tư theo nguồn gốc (OPFS) bằng cách truyền FileSystemFileHandle hoặc FileSystemDirectoryHandle vào observe(). Các phiên bản của các đối tượng này có thể được trả về, ví dụ, khi yêu cầu người dùng chọn tệp hoặc thư mục bằng Window.showSaveFilePicker() hoặc Window.showDirectoryPicker():

js
// Observe a file
async function observeFile() {
  const fileHandle = await window.showSaveFilePicker();

  await observer.observe(fileHandle);
}

// Observe a directory
async function observeDirectory() {
  const directoryHandle = await window.showDirectoryPicker();

  await observer.observe(directoryHandle);
}

Bạn cũng có thể quan sát các thay đổi đối với OPFS bằng cách truyền FileSystemSyncAccessHandle vào observe():

js
// Observe an OPFS file system entry
async function observeOPFSFile() {
  const root = await navigator.storage.getDirectory();
  const draftHandle = await root.getFileHandle("draft.txt", { create: true });
  const syncHandle = await draftHandle.createSyncAccessHandle();

  await observer.observe(syncHandle);
}

Quan sát thư mục một cách đệ quy

Để quan sát thư mục một cách đệ quy, gọi observe() với tùy chọn recursive được đặt là true:

js
// Observe a directory recursively
async function observeDirectory() {
  const directoryHandle = await window.showDirectoryPicker();

  await observer.observe(directoryHandle, { recursive: true });
}

Thông số kỹ thuật

Hiện chưa là một phần của bất kỳ thông số kỹ thuật nào. Xem https://github.com/whatwg/fs/pull/165 để biết PR thông số kỹ thuật liên quan.

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

Xem thêm