簡體   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