[英]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.