gpt4 book ai didi

类里面的 Coffeescript setInterval

转载 作者:行者123 更新时间:2023-12-01 08:35:56 24 4
gpt4 key购买 nike

上周我开始编写coffeescript,因为我正在编写一个以coffeescript 为标准的新Play20 网站。我想每 5 分钟更新一次类(class)中的 getData 函数,但 setInterval 函数没有绑定(bind)到我的类(class)。仅在第一次调用 getData 时,因为“this”对象仍然可以访问,因为 setUpdateInterval() 函数是从构造函数中调用的。

但第一次调用后,setInterval 与 Widget 实例不再有任何联系,也不知道 this.getData() 函数是什么(以及如何到达)。

有人知道怎么做吗?

这是我的代码:

class Widget
constructor: (@name) ->
this.setUpdateInterval()

getData: ->
console.log "get Data by Ajax"

setUpdateInterval: (widget) ->
setInterval( this.getData(), 3000000 )

最佳答案

现在这里需要一些 Javascript 魔法。 Reference

class Widget
constructor: (@name) ->
this.setUpdateInterval()

getData: ->
console.log "get Data by Ajax"

setUpdateInterval: (widget) ->
callback = @getData.bind(this)
setInterval( callback, 3000000 )

这几乎适用于所有浏览器(猜猜哪个不是),所以函数必须以不同的方式绑定(bind)。一些 CoffeeScript 的魔法:

callback = => @getData

关于类里面的 Coffeescript setInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10515780/

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