从 coffeescript javascript if 语句中断

Break from a coffeescript javascript if statement

我正在使用 vimeo api,它会在视频播放完毕后每秒从 0.0 到 1 报告视频播放的进度。 当进度为 0.66 或更高时,我想做一些事情,但在我的 if 循环中,一旦进度达到 66% (0.66)

,我想做的任何事情都会被连续触发
           player.addEvent 'playProgress', (data, id) ->
               break_loop = false
               if data.percent >= 0.66 && break_loop is false
                do_something
                break_loop = true

从视频进度达到 66% 到完成时 do_something 每秒都在触发,我怎么能只 运行 一次呢?

我建议更新您的代码以使用 new Vimeo JavaScript API so that you could use off 删除事件处理程序。然后你可以将你的事件处理程序移动到一个命名函数(或者至少是 CoffeeScript 最接近命名函数的东西)并且当达到 66% 标记时它可以解除自身绑定,比如:

progress = (data) ->
  return if(data.percent < 0.66)
  do_something()
  player.off('timedupdate', progress)

player.on('timedupdate', progress)

您不仅可以获得最新的界面,还可以通过 JavaScript 回调了解相当常见的模式。

您使用的旧 API 中可能有类似 off 的内容,但我找不到它的任何文档。