繁体   English   中英

如何编写一行回调箭头函数来抛出错误?

[英]How to write a one line callback arrow function to throw error?

如何使用箭头函数编写这个简单的回调?

(error) => {
  throw error
}

以下不起作用:

(error) => throw error

throw是一个语句(的东西的东西),而不是一个表达式(将计算得到一个值)。

当使用简明体语法-箭头功能没有{下列=> -什么遵循=>必须是一个表达式。 因此, (error) => throw error不起作用-您唯一的选择是将throw放在允许表达式的某个地方的上下文中,该上下文必须位于块内:

(error) => {
  throw error
}

如果需要,您可以将其全部放在一行中,但仍然需要括号:

(error) => { throw error }

我想你可以为外部函数使用一个简洁的主体并放入一个 IIFE 来创建一个新块,在其中throw将被允许​​,但这会增加语法噪音,而没有真正的收益 IMO:

(error) => (() => { throw error })();

Throw 表达式处于第 2 阶段。最终,很可能可以像您想要的那样使用throw ,并具有简洁的主体 - 但目前还不太可能。

如果你不使用像 {} 这样的块作为箭头函数的主体,主体必须是一个表达式。 就像如果你使用

(error) => throw error

相当于

(error) => { return throw error; }

throw 是一个语句而不是 expression ,这就是它无效的原因。 所以你必须定义如下:

(error) => {throw error};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM