_.debounce ใน Lodash เป็นฟังก์ชันที่ช่วยในการจัดการการเรียกฟังก์ชันที่มีการเรียกอย่างต่อเนื่อง (ต่อเนื่อง) โดยกำหนดระยะเวลารอระหว่างการเรียก ซึ่งทำให้คุณสามารถควบคุมความถี่ของการเรียกฟังก์ชันและลดการเรียกที่ไม่จำเป็นลง นี่คือวิธีการใช้งาน _.debounce:
1 | const _ = require('lodash'); |
ในตัวอย่างข้างบน _.debounce(search, 500) จะสร้างฟังก์ชัน debouncedSearch ที่รอระยะเวลา 500 มิลลิวินาที หลังจากที่มีการเรียก debouncedSearch ครั้งแรก ถ้ามีการเรียก debouncedSearch ต่อมาภายในระยะเวลา 500 มิลลิวินาที การเรียกก่อนหน้าจะถูกล้างและฟังก์ชัน search จะถูกเรียกด้วยคำสั่งล่าสุดที่ถูกเรียก นี่คือผลลัพธ์ที่คุณจะเห็น:
1 | Searching for: Keyword 3 |
ในกรณีนี้ฟังก์ชัน search ถูกเรียกเพียงครั้งเดียวสำหรับการเรียก debouncedSearch ทั้งหมด ซึ่งช่วยลดการเรียกไม่จำเป็นเมื่อมีการเรียกต่อเนื่องในระยะเวลาสั้น ๆ แบบนี้ ฟังก์ชัน _.debounce มีประโยชน์ในกรณีที่คุณต้องการควบคุมการเรียกฟังก์ชันในกรณีที่การเรียกมีความถี่สูงและคุณต้องการที่จะรอระยะเวลาหลังการกระทำล่าสุดก่อนที่จะดำเนินการต่อ.