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
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ệ
NotAllowedErrorDOMException-
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.
// 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().
// Đă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
// 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> |