簡體   English   中英

下划線辯護多次呼叫

[英]Underscore Debounce Calling Multiple Times

調用_.debounce()會導致函數多次執行,而不是在延遲后執行一次。 如何讓_.debounce()的函數在指定的延遲后執行一次? 我的用例是在用戶停止輸入后執行AJAX請求。

例如,輸入輸入將導致消息在1秒后出現在控制台中。 在我的示例中,您將看到多條消息(您鍵入的每個字母都有一條消息)。 如何修改我的代碼才能看到一條消息?

https://plnkr.co/edit/3dGm55ZFqWe4V59HLgoC

function onKeyUp() {
    _.debounce(() => {
        console.log('foo');
    }, 1000)();
}
<input onkeyup="onKeyUp()" />

您正在為每個keyup事件創建一個新的debounced函數。 相反,您需要創建一次並在內部(或代替)onKeyUp事件處理程序中使用此函數。

 var handler = _.debounce(() => { console.log('foo'); }, 1000) function onKeyUp() { handler(); } 
 <script src="http://underscorejs.org/underscore-min.js"></script> <input onkeyup="onKeyUp()" /> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM