我发现自己多次写这个:
{ someJQueryCallback: ->
keepGoing = true
$(someSelector).each ->
unless someCondition($(@))
keepGoing = false
return false
return false unless keepGoing
moreStuff()
}
当然,第一次,我犯了大家都会犯的菜鸟错误:
{ someJQueryCallback: ->
$(someSelector).each -> return false unless someCondition($(@))
moreStuff()
}
啊,函数漂亮语法的危险。作为一个菜鸟,我忘记了在那个范围内,return
会退出each
而不是退出someJQueryCallback
。但实际上,即使我现在“开明”了,这仍然是我想写的代码。我想以某种方式指定“弹出堆栈,直到您从someJQueryCallback
. 初始化、设置和检查bool
标志很烦人。它增加了杂物。有没有一种惯用的方法来return
以这种方式提高调用堆栈?