【发布时间】:2014-08-01 12:57:20
【问题描述】:
我想从内部函数内部跳出外部函数。
something = true
outer: (next)->
@inner (err)->
if err?
next err
#jump out of outer function here
console.log 'still in outer'
inner: (next)->
next new Error 'oops' if @something is true
代码在coffeescript中,但欢迎使用javascript回答。
更新
感谢您的快速回复 - 那么如何使用 @inner 函数的返回值?这种事情有普遍接受的模式吗?
something = true
outer: (next)->
return unless @inner (err)-> next err if err
console.log 'still in outer'
inner: (next)->
if @something is true
next new Error 'oops'
return false
return true
【问题讨论】:
-
你需要有一个 bool 变量 & 从内部函数返回时设置该变量 & 在外部函数中检查它的值,如果它设置为 true 然后也从外部返回。
-
当然可以
throw... -
@T.J.Crowder:这取决于语言范式(我有点pythonic),当然,OP 跳出的原因是否真的是特殊的:-)
-
@biofractal:是的,返回值是执行此操作的常用方法。
-
@T.J.Crowder: More or less, yes