debounce ใน Lodash

_.debounce ใน Lodash เป็นฟังก์ชันที่ช่วยในการจัดการการเรียกฟังก์ชันที่มีการเรียกอย่างต่อเนื่อง (ต่อเนื่อง) โดยกำหนดระยะเวลารอระหว่างการเรียก ซึ่งทำให้คุณสามารถควบคุมความถี่ของการเรียกฟังก์ชันและลดการเรียกที่ไม่จำเป็นลง นี่คือวิธีการใช้งาน _.debounce:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const _ = require('lodash');

// สร้างฟังก์ชันที่ต้องการจะรอการ debounce
function search(query) {
console.log(`Searching for: ${query}`);
// ทำงานที่นี่ เช่น ส่งคำขอค้นหาไปยังเซิร์ฟเวอร์
}

// สร้างฟังก์ชันที่ถูก debounce และระบุระยะเวลารอ (มิลลิวินาที)
const debouncedSearch = _.debounce(search, 500);

// ตัวอย่างการเรียกฟังก์ชันที่ถูก debounce
debouncedSearch('Keyword 1');
debouncedSearch('Keyword 2');
debouncedSearch('Keyword 3');

ในตัวอย่างข้างบน _.debounce(search, 500) จะสร้างฟังก์ชัน debouncedSearch ที่รอระยะเวลา 500 มิลลิวินาที หลังจากที่มีการเรียก debouncedSearch ครั้งแรก ถ้ามีการเรียก debouncedSearch ต่อมาภายในระยะเวลา 500 มิลลิวินาที การเรียกก่อนหน้าจะถูกล้างและฟังก์ชัน search จะถูกเรียกด้วยคำสั่งล่าสุดที่ถูกเรียก นี่คือผลลัพธ์ที่คุณจะเห็น:

1
Searching for: Keyword 3

ในกรณีนี้ฟังก์ชัน search ถูกเรียกเพียงครั้งเดียวสำหรับการเรียก debouncedSearch ทั้งหมด ซึ่งช่วยลดการเรียกไม่จำเป็นเมื่อมีการเรียกต่อเนื่องในระยะเวลาสั้น ๆ แบบนี้ ฟังก์ชัน _.debounce มีประโยชน์ในกรณีที่คุณต้องการควบคุมการเรียกฟังก์ชันในกรณีที่การเรียกมีความถี่สูงและคุณต้องการที่จะรอระยะเวลาหลังการกระทำล่าสุดก่อนที่จะดำเนินการต่อ.