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