TaskController: setPriority() method

Khả dụng hạn chế

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Note: This feature is available in Web Workers.

Phương thức setPriority() của giao diện TaskController có thể được gọi để đặt mức ưu tiên mới cho signal của bộ điều khiển này. Nếu một tác vụ ưu tiên được cấu hình để sử dụng tín hiệu, thao tác này cũng sẽ thay đổi mức ưu tiên của tác vụ.

Các trình quan sát được thông báo về thay đổi mức ưu tiên bằng cách gửi sự kiện prioritychange. Phương thức chỉ thông báo nếu mức ưu tiên thực sự thay đổi (sự kiện không được kích hoạt nếu mức ưu tiên không thay đổi sau khi gọi).

Lưu ý rằng mức ưu tiên của tác vụ chỉ có thể thay đổi đối với tác vụ có mức ưu tiên có thể thay đổi. Nếu tác vụ không thể thay đổi, lời gọi hàm sẽ bị bỏ qua.

Cú pháp

js
setPriority(priority)

Tham số

priority

Mức ưu tiên của tác vụ. Một trong: "user-blocking", "user-visible", "background".

Giá trị trả về

Không có (undefined).

Ngoại lệ

NotAllowedError DOMException

Một thay đổi mức ưu tiên đã được bắt đầu trong khi một thay đổi khác đang chạy.

Ví dụ

Đầu tiên chúng ta tạo một bộ điều khiển tác vụ. Trong trường hợp này chúng ta không chỉ định mức ưu tiên, vì vậy nó sẽ mặc định là user-visible.

js
// Tạo TaskController với mức ưu tiên mặc định: 'user-visible'
const controller = new TaskController();

Sau đó chúng ta truyền tín hiệu của bộ điều khiển vào phương thức Scheduler.postTask().

js
// Đăng tải tác vụ truyền vào tín hiệu của bộ điều khiển.
scheduler
  .postTask(() => "Task execute", { signal: controller.signal })
  .then((taskResult) => {
    console.log(`${taskResult}`);
  }) // Chạy khi thành công
  .catch((error) => {
    console.log(`Catch error: ${error}`);
  }); // Chạy khi thất bại

Sau đó bộ điều khiển có thể được dùng để thay đổi mức ưu tiên

js
// Thay đổi mức ưu tiên thành 'background' bằng bộ điều khiển
controller.setPriority("background");

Các ví dụ bổ sung, bao gồm cách xử lý sự kiện xuất hiện từ việc thay đổi mức ưu tiên, có thể tìm thấy tại: Prioritized Task Scheduling API > Ví dụ.

Thông số kỹ thuật

Thông số kỹ thuật
Prioritized Task Scheduling
# dom-taskcontroller-setpriority

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