簡體   English   中英

帶有 args 下划線的去抖動函數

[英]Debounce function with args underscore

我有一個接受一些參數的函數。 但是下划線去抖動的用法是:

var lazyLayout = _.debounce(calculateLayout, 300);

但在我的情況下, calculateLayout需要一些參數才能運行。 在這種情況下我如何通過它們?

更新 :

示例calculateLayout功能:

var calculateLayout = function(a,b) {
  console.log('a is ' + a + ' and b is ' + b);
}

中間不需要匿名函數,當你運行 debounced 版本時參數會自動傳遞給原始函數

  var debounceCalculate = _.debounce(calculateLayout, 300);
  debounceCalculate(a,b);

作為一個優勢,您不必提前對參數進行硬編碼

您可以嘗試一下,如果好奇,請查看來源

您應該能夠僅使用匿名函數作為第一個參數,然后在其中調用您喜歡的任何內容:

_.debounce(function(){
    calculateLayout(20, 30);
}, 300);

@傑米的答案更好。

我將保留我的原始答案如下,盡管如果您熟悉 JS,最好使用 Jamie 的答案:

var calculateLayout = function(a,b) {
  console.log('a is ' + a + ' and b is ' + b);
}

var debounceCalculate = _.debounce(function(a, b){
    calculateLayout(a, b);
}, 300);

debounceCalculate(1, 2);

由於沒有人寫過沒有額外varfunction單行,我會自己做:

_.debounce(calculateLayout, 300)(a, b);

Debounce 函數返回另一個函數,因此您可以在執行 debounce 之后調用它。

暫無
暫無

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

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