gpt4 book ai didi

javascript - 使用 _.memoize() 和 _.debounce()

转载 作者:行者123 更新时间:2023-11-29 14:54:09 24 4
gpt4 key购买 nike

我想为每次调用特定页面时对呈现函数进行去抖动 - 呈现不同的页面会分别进行去抖动。 memoize 函数应该可以解决问题,但它无法正常工作。

var renderPage_underscore = function(pageNo){
var debouncer = _.memoize(
// memoize function
_.debounce(
// debounced function
function () {
// Do renderPage() work here
document.getElementById("underscore").innerHTML +=
'<br />' + pageNo + '@' + new Date().getTime();
},
1000, // delay
true
),
// memoize hash function
function (pageNo) {
return pageNo;
}
);
return debouncer(pageNo);
};

有什么想法吗? http://jsfiddle.net/Zq8Wd/1/

最佳答案

以这种方式使用 _.memoize() 的问题是它缓存了返回值,而不是副作用。如果你想使用 _.memoize() 来解决这个问题,你可能必须这样做:

rp = _.memoize(function (pageNo) {
return _.debounce(function () {
document.getElementById("underscore").innerHTML +=
'<br />' + pageNo + '@' + new Date().getTime();
}, 1000, true);
});

rp(1)();
rp(2)();

已更新 JSFiddle .

关于javascript - 使用 _.memoize() 和 _.debounce(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20746529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com