[英]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.