Atom 包 - setInterval 不调用函数
Atom package - setInterval not calling the function
我目前正在为 atom 开发一个包,其中涉及在 canvas 上绘制曲线。无论出于何种原因,以下代码在调用 handleClickDown 时记录“mouseDown”而从未记录“hi”。我试过不使用 window.
,但记录的仍然是“mouseDown”。如果该上下文有帮助,则每次单击 canvas 时都会调用 handleClickDown 函数。我确定我只是不了解 setInterval / coffescript 的工作原理,因为我是 atom 和 coffescript 的新手。感谢任何帮助。
@printhi: ->
console.log "hi"
handleClickDown: (event, element) ->
console.log "mouseDown"
@mouseDownId = window.setInterval(@printhi,100)
编辑:下面的代码似乎 运行 没问题
console.log "mouseDown"
@mouseDownId = setInterval(()=>
console.log "inner"
,75)
然而,当使用这样的函数时,它会抛出一个错误 _this.printhi is not a function
@printhi = () ->
console.log "hi"
handleClickDown: (event, element) ->
console.log "mouseDown"
@mouseDownId = setInterval(()=>
@printhi()
,75)
好吧,只是在这里回答我自己的问题,因为我最终弄明白了。事实证明,我对 @ 和 => 在 coffeescript 中的工作方式有点困惑。您实际上需要从 @printhi: ->
中删除 @,使其变为 printhi: ->
,然后仅在您这样调用它时使用它 @printhi()
.
下面的代码对我有用,希望有人觉得这有用
printhi: ->
console.log "hi"
handleClickDown: (event, element) ->
console.log "mouseDown"
@mouseDownId = setInterval(()=>
@printhi()
,75)
我目前正在为 atom 开发一个包,其中涉及在 canvas 上绘制曲线。无论出于何种原因,以下代码在调用 handleClickDown 时记录“mouseDown”而从未记录“hi”。我试过不使用 window.
,但记录的仍然是“mouseDown”。如果该上下文有帮助,则每次单击 canvas 时都会调用 handleClickDown 函数。我确定我只是不了解 setInterval / coffescript 的工作原理,因为我是 atom 和 coffescript 的新手。感谢任何帮助。
@printhi: ->
console.log "hi"
handleClickDown: (event, element) ->
console.log "mouseDown"
@mouseDownId = window.setInterval(@printhi,100)
编辑:下面的代码似乎 运行 没问题
console.log "mouseDown"
@mouseDownId = setInterval(()=>
console.log "inner"
,75)
然而,当使用这样的函数时,它会抛出一个错误 _this.printhi is not a function
@printhi = () ->
console.log "hi"
handleClickDown: (event, element) ->
console.log "mouseDown"
@mouseDownId = setInterval(()=>
@printhi()
,75)
好吧,只是在这里回答我自己的问题,因为我最终弄明白了。事实证明,我对 @ 和 => 在 coffeescript 中的工作方式有点困惑。您实际上需要从 @printhi: ->
中删除 @,使其变为 printhi: ->
,然后仅在您这样调用它时使用它 @printhi()
.
下面的代码对我有用,希望有人觉得这有用
printhi: ->
console.log "hi"
handleClickDown: (event, element) ->
console.log "mouseDown"
@mouseDownId = setInterval(()=>
@printhi()
,75)