从 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
的内容,但我找不到它的任何文档。
我正在使用 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
的内容,但我找不到它的任何文档。