我尝试使用Underscore.js 1.6.0来破坏一个函数,但是在超时集之后不会调用该函数。我希望输出div中正好有一个"o“,但是没有。将_.debounce(echo, 200)改为_.debounce(echo(), 200)会产生10o,这不是我想要的。在Mac上的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);
}发布于 2014-06-19 16:50:22
谢谢费利克斯·克林!以下代码起作用:
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);
}如果你现在不介意的话,我得把头撞到墙上。
https://stackoverflow.com/questions/24311931
复制相似问题