首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在lodash的油门装饰器上使用flush

在lodash的油门装饰器上使用flush
EN

Stack Overflow用户
提问于 2019-03-18 23:15:31
回答 1查看 396关注 0票数 1

使用TypeScript (JavaScript和Angular):

我希望lodash的油门装饰器在用户浏览页面时限制API调用,但在用户卸载(离开)站点之前仍会触发。

在typescript构造函数中,我有window.addEventListener('beforeunload', () => this.onUnload());

其中onUnload()函数被声明为

代码语言:javascript
复制
onUnload() {
    this.thisIsTheThrottledFunction.flush;
}

但是我得到了错误响应“属性'flush‘不存在于类型'() => Promise’上。”

我试图访问其.flush方法的函数是另一个函数的声明节流版本。该函数被成功地限制了,因此我确信部分代码可以正常工作。访问.flush方法的最佳方式是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-18 23:52:01

您应该能够通过验证this的值来调试它。在我看来,您只需要将对象的this值传递给onUnload函数(或者您也可以传入它)。例如,您可以将以下内容放入您的构造函数:this.onUnload = this.onUnload.bind(this)。这种语法很有好处,您可以在类中使用onUnload = () => { ... }来定义它。这两种方法都将方法附加到实例,而不是将其作为原型的一部分。或者,您可以将绑定函数直接传递给事件侦听器:

代码语言:javascript
复制
window.addEventListener('beforeunload', this.onUnload.bind(this));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55224540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档