不断尝试用ES6捕捉?

时间:2015-09-29 11:28:52

标签: const ecmascript-6

我一直试着使用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)

这会带来什么问题吗?

1 个答案:

答案 0 :(得分:1)

您不能使用const,因为可以在try子句中稍后分配值,稍后在catch子句中分配值。如果您绝对希望变量为const,则可以创建在try和catch子句中指定的临时变量,并添加finally子句,将临时变量分配给const变量。