coffeescript - Atom 包 - setInterval 未调用该函数
问题描述
我目前正在研究原子包,其中涉及在画布上绘制曲线。无论出于何种原因,以下代码在调用 handleClickDown 时会记录“mouseDown”,而不会记录“hi”。我试过没有window.
但仍然“mouseDown”是所有的记录。如果上下文有帮助,则每次单击画布时都会调用 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)
推荐阅读
- java - spring boot rest-api PUT 请求返回空值
- performance - J Meter - 移动应用程序录制 - SSL HandshakeException
- python - 如何检测树莓派板子型号?
- javascript - 使用图像数据处理后获取变换和缩放坐标
- r-markdown - 在 Bookdown (gitbook) 中通过“参考书目”更改“参考”
- paypal - PayPal Checkout 控制台错误:无法在“购物车”类型上查询“补充”字段
- r - 我如何告诉 R 包 Limma 在 read.idat() 中使用什么作为“目标”?
- node.js - 在 Docker 构建中找不到 TSC
- javascript - 如何使用 jQuery 遍历 div、抓取 href 和包装不同的元素?
- python-3.6 - 我已经安装了 python-3.9.1 和 pip 但是在运行命令 python3 -V 得到结果为 python 3.6.9 如何获得 python 版本 3.9