gpt4 book ai didi

javascript - 从一个事件监听器中触发两个函数(一个被限制,另一个没有)

转载 作者:行者123 更新时间:2023-11-30 21:18:18 24 4
gpt4 key购买 nike

我有一个用于滚动事件的事件监听器,它会触发一个负责将元素附加到视口(viewport)的函数。相同的滚动事件监听器正在被限制以防止滚动事件的倾盆大雨(更易于管理)。用于 throttle 的库是 throttle-debounce .问题:限制 handlePageScroll 正在限制该方法中包含的所有内容(当然)。

代码:

componentDidMount() {
window.addEventListener('scroll', throttle(2000, this.handlePageScroll));
}

handlePageScroll = () => {
someFn() // logic for appending an element, does not need throttling
this.loadNextBatch(); // logic that actually needs to be throttled
};

我尝试在 handlePageScroll 中进行 throttle ,但没有成功。有没有办法从一个事件监听器中触发两个函数?提前谢谢你。

最佳答案

这是一个解决方案,通过保持状态:

componentDidMount() {
let throttled = false
window.addEventListener('scroll', () => {
if (!throttled) {
throttle(2000, () => {
this.loadNextBatch()
throttled = false
})()
throttled = true
}
someFn()
})
}

关于javascript - 从一个事件监听器中触发两个函数(一个被限制,另一个没有),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45449011/

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