簡體   English   中英

Underscore.js反跳

[英]Underscore.js debounce

我嘗試使用Underscore.js 1.6.0來反跳一個函數,但是在設置了超時后未調用該函數。 我期望在輸出div中恰好有一個“ o”,但是沒有。 _.debounce(echo, 200)更改為_.debounce(echo(), 200)會產生10 o,這不是我想要的。 在Mac OS X上的Chrome和Firefox上,結果相同。

我究竟做錯了什么? 我是否以錯誤的方式使用_.debounce?

有關工作示例,請參見http://jsfiddle.net/YmSGL/

function echo() {
    var out = document.getElementById("out");
    out.innerHTML = out.innerHTML + "o";       
}

for (var i = 0; i < 10; i++) {
    var wait = Math.floor(Math.random() * 100);
    setTimeout(function() {
        console.log("Calling echo @" + _.now());
        _.debounce(echo, 200);
    }, wait);
}

謝謝Felix Kling! 以下代碼有效:

function echo() {
    var out = document.getElementById("out");
    out.innerHTML = out.innerHTML + "o";       
}

var echo2 = _.debounce(echo, 200);

for (var i = 0; i < 10; i++) {
    var wait = Math.floor(Math.random() * 100);
    setTimeout(function() {
        console.log("Calling echo @" + _.now());
        echo2();
    }, wait);
}

如果您現在可以為我辯解,我得把頭撞在牆上。

暫無
暫無

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

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