Một chức năng gỡ lỗi giới hạn tốc độ mà một chức năng có thể kích hoạt. Ví dụ:thanh văn bản tự động hoàn thành truy vấn máy chủ. Nếu bạn truy vấn máy chủ ở mỗi lần gõ phím, nó sẽ ảnh hưởng đến mạng và bộ nhớ một cách không cần thiết. Thay vào đó, điều bạn có thể làm là giới hạn số lượng các cuộc gọi này diễn ra trong một khoảng thời gian nhất định.
Bạn có thể viết hàm gỡ lỗi của riêng mình, lấy hàm thực của bạn làm đối số và thực thi nó theo cách giới hạn tốc độ (bị điều chỉnh).
Ví dụ
const debounce = (cb, time) => { let timeout; return function() { const wrapperFunc = () => cb.apply(this, arguments); clearTimeout(timeout); timeout = setTimeout(wrapperFunc, time); } }
Hàm này nhận 2 đối số gọi lại và khoảng thời gian mà nó sẽ được gọi. Vì vậy, giả sử cuộc gọi đầu tiên đến API diễn ra ở tốc độ 1ms và bạn đã đặt thời gian là 250 mili giây, cho đến 251 mili giây, một lệnh gọi mới sẽ không được thực hiện đối với API bất kể hàm này được gọi bao nhiêu lần. Bạn có thể thay thế lệnh gọi hàm của riêng mình bằng lệnh gọi này.