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