使用TypeScript(JavaScript和Angular):
我希望lodash的油门装饰器可以在用户浏览页面时限制API调用,但是在卸载(离开)站点之前仍然可以触发。
在打字稿构造函数中,我有window.addEventListener('beforeunload', () => this.onUnload());
,其中onUnload()
函数被声明为
onUnload() {
this.thisIsTheThrottledFunction.flush;
}
但是我收到错误响应“类型(()=> Promise'上不存在属性'flush'。”
我尝试访问其.flush
方法的函数是其他函数的声明的限制版本。该函数已成功调节,因此我相信部分代码可以正常工作。访问.flush
方法的最佳方法是什么?
答案 0 :(得分:1)
您应该能够通过验证this
的值来对其进行调试。在我看来,您只需要将对象的this
值onUnload
传递到this.onUnload = this.onUnload.bind(this)
函数(或者可以将其传递)即可。例如,您可以将其放在您的构造函数中:onUnload = () => { ... }
。这种语法有一个优势,您可以在类中使用window.addEventListener('beforeunload', this.onUnload.bind(this));
对其进行定义。这两种方法都将方法附加到实例上,而不仅仅是将其作为原型的一部分。或者,您可以将绑定函数直接传递给事件侦听器:
&.accounts {
display: block;
margin: 0 auto;
height: auto;
.text {
width: auto;
padding: 0;
text-align: center;
}
.image {
width: auto;
height: 300px;
background-image: url('/assets/scrn-accounts.png');
background-repeat: no-repeat;
background-position: 100px 0;
background-size: cover;
margin: 20px 0;
}
}