我一直试着使用const
,但我经常发现自己处于某个位置,我必须使用let
。
例如:
let value
try {
value = couldFail()
} catch(e) {
value = etc()
}
doSomethingWith(value)
是否有重整这类事情的一般方法?
- 编辑 -
我有一个想法:
const tryCatch = (a, b) => {
try { return a() }
catch(e) { return b(e) }
}
const value = tryCatch(couldFail, etc)
这会带来什么问题吗?
答案 0 :(得分:1)
您不能使用const,因为可以在try子句中稍后分配值,稍后在catch子句中分配值。如果您绝对希望变量为const,则可以创建在try和catch子句中指定的临时变量,并添加finally
子句,将临时变量分配给const变量。